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 /articles
GET /articles/:id
POST /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.