З чого почати написання зовнішнього API на Sinatra?

Написання зовнішнього API на Ruby без використання Ruby on Rails, вимагає трохи більше роботи, але це також дає більше контролю над тим, як ваш API працює. Ось основні кроки для створення простого зовнішнього API на Sinatra:

1. Встановлення необхідного програмного забезпечення

Переконайтеся, що у вас встановлений Ruby. Ви можете перевірити це командою:

ruby -v

2. Створення нового проекту

Створіть новий каталог для вашого проекту і ініціалізуйте його як Ruby проект:

mkdir my_api
cd my_api
bundle init

Відкрийте файл Gemfile і додайте необхідні гемси. Для нашого API нам знадобляться наступні:

# Gemfile
source "https://rubygems.org"

gem "sinatra"
gem "json"

Потім встановіть гемси:

bundle install

3. Створення серверного файлу

Створіть файл app.rb у кореневому каталозі проекту. Це буде головний файл вашого API-сервера:

# app.rb
require 'sinatra'
require 'json'

# Массив для зберігання статей
ARTICLES = []

# Відображення всіх статей
get '/articles' do
  content_type :json
  ARTICLES.to_json
end

# Відображення однієї статті
get '/articles/:id' do
  content_type :json
  article = ARTICLES.find { |a| a[:id] == params[:id].to_i }
  halt 404, { message: 'Article Not Found' }.to_json unless article
  article.to_json
end

# Створення нової статті
post '/articles' do
  content_type :json
  data = JSON.parse(request.body.read)
  new_article = {
    id: ARTICLES.size + 1,
    title: data['title'],
    body: data['body']
  }
  ARTICLES << new_article
  status 201
  new_article.to_json
end

# Оновлення статті
put '/articles/:id' do
  content_type :json
  article = ARTICLES.find { |a| a[:id] == params[:id].to_i }
  halt 404, { message: 'Article Not Found' }.to_json unless article
  data = JSON.parse(request.body.read)
  article[:title] = data['title']
  article[:body] = data['body']
  article.to_json
end

# Видалення статті
delete '/articles/:id' do
  content_type :json
  article = ARTICLES.find { |a| a[:id] == params[:id].to_i }
  halt 404, { message: 'Article Not Found' }.to_json unless article
  ARTICLES.delete(article)
  status 204
end

4. Запуск серверу

Запустіть сервер за допомогою команди:

ruby app.rb

За замовчуванням Sinatra сервер запускається на порту 4567. Ви можете відкрити браузер або використовувати інструменти для тестування API, такі як Postman або cURL, щоб протестувати ваш API.

5. Тестування API

Ви можете використовувати cURL для тестування вашого API:

  • Отримати всі статті:
curl -X GET http://localhost:4567/articles
  • Створити нову статтю:
curl -X POST http://localhost:4567/articles -d '{"title": "New Article", "body": "This is the body"}' -H "Content-Type: application/json"
  • Отримати статтю за ID:
curl -X GET http://localhost:4567/articles/1
  • Оновити статтю:
curl -X PUT http://localhost:4567/articles/1 -d '{"title": "Updated Title", "body": "Updated body"}' -H "Content-Type: application/json"
  • Видалити статтю:
curl -X DELETE http://localhost:4567/articles/1

6. Додавання аутентифікації та інших функцій

Якщо вам потрібна аутентифікація або інші функції, ви можете додати їх за допомогою додаткових бібліотек. Наприклад, для аутентифікації можна використовувати гем jwt.

7. Деплоймент

Після завершення розробки ви можете деплоїти свій API на хостинг. Sinatra API можна розмістити на Heroku, AWS, DigitalOcean тощо.

Це основні кроки для створення зовнішнього API на Sinatra. Ви можете розширювати та налаштовувати відповідно до ваших потреб.

1 Вподобання