Dans le monde du développement web, les API (Interfaces de Programmation d'Applications) jouent un rôle crucial. Elles permettent aux différentes applications de communiquer entre elles. Dans cet article, nous allons explorer comment configurer une application Rails en mode API uniquement. Ce guide est conçu pour être informatif et amical, afin de vous aider à démarrer rapidement avec Rails.
Une application API-only est une application qui ne sert que des données via une API, sans interface utilisateur (UI) intégrée. Cela signifie que vous pouvez créer des applications front-end séparées, comme des applications mobiles ou des applications web en utilisant des frameworks JavaScript modernes, qui consomment les données fournies par votre API.
Ruby on Rails est un framework populaire pour le développement d'applications web. Voici quelques raisons pour lesquelles vous pourriez choisir Rails pour créer une API :
Avant de commencer, assurez-vous d'avoir Ruby et Rails installés sur votre machine. Vous pouvez vérifier cela en exécutant les commandes suivantes dans votre terminal :
ruby -v rails -v
Si Ruby ou Rails n'est pas installé, vous pouvez les installer en suivant les instructions sur le site officiel de Ruby et de Rails.
Pour créer une nouvelle application Rails en mode API, utilisez la commande suivante :
rails new mon_api --api
Cette commande crée une nouvelle application Rails avec les configurations nécessaires pour une API. Le drapeau --api configure l'application pour qu'elle soit optimisée pour servir des requêtes API.
Rails utilise par défaut SQLite comme base de données. Si vous souhaitez utiliser une autre base de données, comme PostgreSQL, vous devez modifier le fichier database.yml dans le répertoire config. Voici un exemple de configuration pour PostgreSQL :
default: &default adapter: postgresql encoding: unicode pool: 5 username: votre_nom_utilisateur password: votre_mot_de_passe development: <<: *default database: mon_api_development test: <<: *default database: mon_api_test production: <<: *default database: mon_api_production username: mon_api password: <%= ENV['MON_API_DATABASE_PASSWORD'] %>
Après avoir configuré votre base de données, exécutez la commande suivante pour créer les bases de données :
rails db:create
Pour illustrer comment créer une API, nous allons créer un modèle simple pour un article de blog. Exécutez la commande suivante pour générer un modèle :
rails generate model Article title:string content:text
Ensuite, exécutez la migration pour créer la table dans la base de données :
rails db:migrate
Maintenant, créons un contrôleur pour gérer les requêtes API. Exécutez la commande suivante :
rails generate controller Articles
Ouvrez le fichier app/controllers/articles_controller.rb et modifiez-le comme suit :
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, :content)
end
end
Ce contrôleur fournit des actions pour lister, afficher et créer des articles. Les réponses sont formatées en JSON, ce qui est standard pour les API.
Pour que votre API soit accessible, vous devez configurer les routes. Ouvrez le fichier config/routes.rb et ajoutez les lignes suivantes :
Rails.application.routes.draw do resources :articles end
Cette configuration crée les routes RESTful pour le modèle Article, permettant ainsi d'accéder aux actions définies dans le contrôleur.
Pour tester votre API, vous pouvez utiliser des outils comme Postman ou cURL. Voici quelques exemples de requêtes que vous pouvez effectuer :
GET /articlesGET /articles/:idPOST /articles avec un corps JSON comme :
{
"article": {
"title": "Mon premier article",
"content": "Ceci est le contenu de mon premier article."
}
}
Les tests sont essentiels pour garantir que votre API fonctionne comme prévu. Rails fournit un cadre de test intégré. Vous pouvez créer des tests pour votre contrôleur en ajoutant un fichier dans test/controllers/articles_controller_test.rb :
require "test_helper"
class ArticlesControllerTest < ActionDispatch::IntegrationTest
test "should get index" do
get articles_url
assert_response :success
end
test "should create article" do
assert_difference('Article.count') do
post articles_url, params: { article: { title: 'Titre', content: 'Contenu' } }
end
assert_response :created
end
end
Ces tests vérifient que l'index des articles et la création d'un nouvel article fonctionnent correctement.
Félicitations ! Vous avez maintenant une application Rails API-only fonctionnelle. Vous pouvez étendre cette application en ajoutant des fonctionnalités supplémentaires, comme l'authentification, la pagination, ou même des tests plus avancés. Rails offre une multitude de gems et de bibliothèques qui peuvent vous aider à enrichir votre API.
Nous espérons que ce guide vous a été utile et que vous vous sentez prêt à explorer davantage le développement d'API avec Ruby on Rails. N'hésitez pas à poser des questions ou à partager vos expériences dans les commentaires ci-dessous !
© 2024 RailsInsights. All rights reserved.