REST
- Concept : Ressources et Représentations
- Méthodes HTTP = Verbes d'Action
- Actions non REST
- Principes Clés de REST
- Avantages des APIs REST
Références :
Les API REST (Representational State Transfer) sont capitales dans le développement web moderne, en facilitant l'interconnexion entre différentes applications et services. Elles permettent à des applications d'échanger des données de manière standardisées, même si elles sont écrites dans des langages différents ou fonctionnent sur des plateformes distinctes.
Concept : Ressources et Représentations
Au cœur d'une API REST réside le concept de "ressource". Une ressource peut être
n'importe quoi identifiable : un utilisateur, un produit, un article de blog,
une commande, etc. Chaque ressource est identifiée par une URL unique,
agissant comme son adresse sur le réseau. Exemple :
https://api.example.com/utilisateurs/123 où 123 est l'identifiant de
l'utilisateur.
Une API REST ne transmet pas directement les données elles-mêmes. Elle transmet une représentation de ces données. Cette représentation peut prendre différentes formes, les plus courantes étant JSON (JavaScript Object Notation) et XML. Le choix du format de représentation est généralement spécifié dans les en-têtes de la requête et de la réponse.
Méthodes HTTP = Verbes d'Action
Les interactions avec une API REST s'effectuent à l'aide des méthodes HTTP standard. Ces méthodes définissent l'action à effectuer sur la ressource :
- GET : Récupérer une ressource. Par exemple,
GET /utilisateurs/123pour obtenir les informations de l'utilisateur avec l'ID 123. - POST : Créer une nouvelle ressource. Par exemple,
POST /utilisateurspour créer un nouvel utilisateur. Les données du nouvel utilisateur sont incluses dans le corps de la requête. - PUT : Mettre à jour une ressource existante en remplaçant complètement son
contenu. Par exemple,
PUT /utilisateurs/123pour mettre à jour l'ensemble des informations de l'utilisateur 123. - PATCH : Mettre à jour une ressource existante en modifiant partiellement
son contenu. Par exemple,
PATCH /utilisateurs/123pour modifier uniquement le nom de l'utilisateur 123. - DELETE : Supprimer une ressource. Par exemple,
DELETE /utilisateurs/123pour supprimer l'utilisateur 123.
Actions non REST
Bien que la méthode POST soit principalement associée à la création de
nouvelles ressources, elle peut également être utilisée pour déclencher des
actions spécifiques sur une ressource ou effectuer des opérations qui ne
s'inscrivent pas dans les verbes standard. Par exemple,
POST /utilisateurs/123/messages pourrait être utilisé pour envoyer un message
à l'utilisateur 123, sans pour autant créer une nouvelle ressource "message"
indépendante.
Cela permet de réaliser des opérations personnalisées ou complexes, ou de lancer des processus asynchrones liés à une ressource existante, en exploitant le corps de la requête pour transmettre les paramètres nécessaires à l'action. Il est important de documenter clairement ces utilisations non conventionnelles de POST pour assurer la clarté de l'API.
Dans la pratique, cette approche permet de gérer des opérations à la manière d'une API RPC (Remote Procedure Call), où l'on peut appeler des fonctions distantes en utilisant des requêtes HTTP. Même si "c'est pas bien", cela peut être indispensable dans beaucoup de situations.
Principes Clés de REST
L'architecture REST s'appuie sur plusieurs principes pour garantir son efficacité et sa scalabilité :
- Stateless (Sans État) : chaque requête du client au serveur doit contenir toutes les informations nécessaires pour être traitée. Le serveur ne conserve aucune information sur les requêtes précédentes.
- Cacheable (Mise en Cache) : les réponses du serveur doivent être explicitement définies comme pouvant être mises en cache ou non, ce qui permet d'améliorer les performances.
- Uniform Interface (Interface Uniforme) : l'utilisation des méthodes HTTP standard (GET, POST, PUT, DELETE) et d'une structure d'URL cohérente permet de simplifier l'interaction avec l'API.
Avantages des APIs REST
- simplicité : facile à comprendre et à utiliser grâce à l'utilisation des méthodes HTTP standard.
- documentation : les API REST peuvent être facilement documentées (voire auto-documentées) à l'aide d'outils comme Swagger ou OpenAPI, facilitant la compréhension et l'utilisation par les développeurs.
- scalabilité : l'absence d'état du serveur permet une scalabilité horizontale facile.
- flexibilité : supporte différents formats de données et peut être utilisée avec différents langages de programmation.
- interopérabilité : permet l'intégration facile entre différentes applications et services.
Les APIs REST constituent une approche puissante et largement adoptée pour la création d'applications web modernes, favorisant l'interopérabilité et la modularité. Leur utilisation simplifie l'intégration de services tiers et permet la construction d'architectures distribuées robustes et évolutives.