Rails Insights

Configurer une Application Rails API-Only

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.

Qu'est-ce qu'une Application API-Only ?

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.

Pourquoi Choisir Rails pour une 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 :

  • Rapidité de développement : Rails est conçu pour faciliter le développement rapide grâce à sa convention sur la configuration.
  • Communauté active : Rails a une grande communauté qui fournit de nombreux gems et ressources.
  • Facilité d'utilisation : La syntaxe de Ruby est simple et intuitive, ce qui rend le développement agréable.

Étape 1 : Installer Ruby et Rails

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.

Étape 2 : Créer une Nouvelle Application Rails API

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.

Étape 3 : Configurer la Base de Données

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

Étape 4 : Créer un Modèle et un Contrôleur

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

Configurer le Contrôleur

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.

Étape 5 : Configurer les Routes

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.

Étape 6 : Tester l'API

Pour tester votre API, vous pouvez utiliser des outils comme Postman ou cURL. Voici quelques exemples de requêtes que vous pouvez effectuer :

  • Obtenir tous les articles : GET /articles
  • Obtenir un article spécifique : GET /articles/:id
  • Créer un nouvel article : POST /articles avec un corps JSON comme :
{
  "article": {
    "title": "Mon premier article",
    "content": "Ceci est le contenu de mon premier article."
  }
}

Étape 7 : Ajouter des Tests

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.

Conclusion

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 !

Published: August 22, 2024

© 2024 RailsInsights. All rights reserved.