Для початку написання API Ruby on Rails можна скористатися наступними кроками:
1. Встановлення необхідного програмного забезпечення
Перш за все, переконайтеся, що у вас встановлені Ruby та Ruby on Rails. Ви можете перевірити це командою:
ruby -v
rails -v
Якщо у вас немає цих програм, ви можете встановити їх наступним чином:
gem install rails
2. Створення нового проекту Rails
Створіть новий Rails проект, вказавши, що це буде API-only проект:
rails new my_api --api
Прапор --api
створює більш легкий проект, який оптимізований для створення API.
3. Налаштування бази даних
Переконайтеся, що налаштування бази даних правильні, і створіть базу даних:
rails db:create
4. Створення ресурсів
Створіть ресурс, який буде використовуватися в вашому API. Наприклад, створимо ресурс для керування статтями:
rails generate scaffold Article title:string body:text
rails db:migrate
Ця команда створює модель, контролер та маршрути для ресурсу Article
.
5. Налаштування маршрутизації
Переконайтеся, що ваші маршрути налаштовані правильно. Файл config/routes.rb
повинен виглядати приблизно так:
Rails.application.routes.draw do
resources :articles
end
6. Контролери
Контролери, які створилися разом зі scaffold, вже містять основні методи для обробки запитів. Наприклад, контролер для статей (app/controllers/articles_controller.rb
) буде виглядати так:
class ArticlesController < ApplicationController
before_action :set_article, only: [:show, :update, :destroy]
# GET /articles
def index
@articles = Article.all
render json: @articles
end
# GET /articles/1
def show
render json: @article
end
# POST /articles
def create
@article = Article.new(article_params)
if @article.save
render json: @article, status: :created, location: @article
else
render json: @article.errors, status: :unprocessable_entity
end
end
# PATCH/PUT /articles/1
def update
if @article.update(article_params)
render json: @article
else
render json: @article.errors, status: :unprocessable_entity
end
end
# DELETE /articles/1
def destroy
@article.destroy
end
private
def set_article
@article = Article.find(params[:id])
end
def article_params
params.require(:article).permit(:title, :body)
end
end
7. Тестування API
Переконайтеся, що ваш API працює, використовуючи інструменти для тестування API, такі як Postman або cURL. Наприклад:
curl -X GET http://localhost:3000/articles
8. Додавання аутентифікації
Ви можете додати аутентифікацію до вашого API, використовуючи гем devise
або jwt
для токенів. Наприклад, для використання jwt
можна скористатися гемом devise-jwt
.
9. Документація API
Рекомендується додати документацію до вашого API. Це можна зробити за допомогою таких інструментів, як Swagger, інтегрувавши його за допомогою гемів rswag
або swagger-blocks
.
10. Деплоймент
Після завершення розробки, ви можете деплоїти свій API на хостинг. Популярні платформи для деплойменту Rails додатків включають Heroku, AWS, DigitalOcean тощо.
Ось простий приклад для початку роботи над створенням API на Ruby on Rails. Звісно, в залежності від складності вашого проекту, ви можете додавати інші необхідні функції та налаштування.