Про API на Ruby

API (Application Programming Interface) в Ruby, як і в будь-якій іншій мові програмування, є набором правил та інструментів, які дозволяють взаємодіяти з програмним забезпеченням чи сервісами. В Ruby є кілька типів API, які розробники можуть використовувати:

1. Вбудовані API Ruby

Ruby має багато вбудованих модулів і класів, які формують стандартну бібліотеку мови. Ці API надають широкий спектр функціональностей для виконання різноманітних завдань, таких як робота з файлами, мережеве програмування, обробка рядків тощо. Наприклад:

# Робота з файлами
File.open("example.txt", "w") do |file|
  file.puts "Hello, world!"
end

# Робота з рядками
str = "hello"
puts str.upcase # "HELLO"

2. Геми (Gems)

RubyGems — це система управління пакетами для Ruby. Геми — це бібліотеки чи додатки, які можна встановлювати та використовувати у своїх проектах. Вони часто надають API для виконання певних завдань. Наприклад, гем httparty для роботи з HTTP-запитами:

require 'httparty'

response = HTTParty.get('https://api.example.com/data')
puts response.body

3. Rails API

Ruby on Rails — це популярний фреймворк для веб-розробки, який часто використовується для створення API для веб-додатків. Він має потужні інструменти для створення RESTful API. Наприклад:

# routes.rb
Rails.application.routes.draw do
  resources :articles
end

# articles_controller.rb
class ArticlesController < ApplicationController
  def index
    @articles = Article.all
    render json: @articles
  end

  def show
    @article = Article.find(params[:id])
    render json: @article
  end

  def create
    @article = Article.new(article_params)
    if @article.save
      render json: @article, status: :created
    else
      render json: @article.errors, status: :unprocessable_entity
    end
  end

  private

  def article_params
    params.require(:article).permit(:title, :body)
  end
end

4. Зовнішні API

Ruby також широко використовується для доступу до зовнішніх API. Це можуть бути API сторонніх сервісів, таких як GitHub, Twitter, Google Maps тощо. Для цього часто використовуються бібліотеки, які спрощують роботу з такими API. Наприклад, для роботи з GitHub API можна використовувати гем octokit:

require 'octokit'

client = Octokit::Client.new(:access_token => "your_access_token")
user = client.user
puts user.name

5. GraphQL API

Окрім RESTful API, в Ruby можна створювати і GraphQL API, використовуючи гем graphql-ruby:

# schema.rb
class MySchema < GraphQL::Schema
  query(Types::QueryType)
end

# types/query_type.rb
module Types
  class QueryType < Types::BaseObject
    field :article, Types::ArticleType, null: false do
      argument :id, ID, required: true
    end

    def article(id:)
      Article.find(id)
    end
  end
end

Ruby пропонує багато можливостей для створення та використання API, що робить його потужним інструментом для розробників.