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, що робить його потужним інструментом для розробників.