API REST
1. Introduction
Une API RESTful est une interface permettant la communication entre
différents systèmes informatiques à travers le protocole HTTP en suivant les
principes architecturaux de REST (Representational State Transfer), définis par
Roy Fielding en 2000.
Elle est largement utilisée dans le développement d’applications web et
mobiles pour permettre l’interaction entre un client (navigateur, appli
mobile…) et un serveur (base de données, logique métier, etc.).
2. Définitions clés
API (Application Programming Interface)
C’est un ensemble de règles qui permet à un logiciel d’accéder aux
fonctionnalités ou aux données d’un autre logiciel ou service.
REST (Representational State Transfer)
C’est un style d’architecture pour la conception de services répartis. Il définit
un ensemble de contraintes que l’API doit respecter pour être considérée
comme RESTful.
3. Les 6 principes fondamentaux de REST
1. Client-Serveur
• Séparation entre l’interface utilisateur (client) et le stockage des données
(serveur).
• Permet une meilleure portabilité du client et une meilleure scalabilité du
serveur.
2. Stateless (Sans état)
• Chaque requête du client au serveur doit contenir toutes les
informations nécessaires à son traitement.
• Le serveur ne doit pas stocker d’information sur l’état du client entre
deux requêtes.
3. Cacheable
• Les réponses doivent indiquer si elles peuvent être mises en cache pour
améliorer les performances.
4. Interface uniforme
• L’utilisation d’URI (Uniform Resource Identifier) et des méthodes HTTP
standard (GET, POST, PUT, DELETE) pour interagir avec les ressources.
• Cela rend l’API simple, prévisible et compréhensible.
5. Système en couches
• L’architecture peut être composée de couches hiérarchiques (ex: cache,
proxy, load balancer, etc.)
6. Code on demand (facultatif)
• Le serveur peut fournir du code exécutable au client (ex: JavaScript),
mais cela reste rare.
4. Les ressources et les URI
Une ressource est un objet ou une donnée accessible via une URI (Uniform
Resource Identifier).
Exemples de ressources :
• /membres
• /membres/123
• /convois
5. Les méthodes HTTP
Verbe Fonction Exemple
HTTP
GET Récupérer une ressource GET /membres
POST Créer une ressource POST /membres
PUT Mettre à jour une ressource entière PUT /membres/123
Verbe Fonction Exemple
HTTP
PATCH Mettre à jour partiellement PATCH /membres/123
DELETE Supprimer une ressource DELETE /membres/123
6. Les codes de statut HTTP
Code Signification
200 OK Succès
201 Created Ressource créée
204 No Content Succès sans contenu
400 Bad Request Requête invalide
401 Unauthorized Non authentifié
403 Forbidden Accès refusé
404 Not Found Ressource non trouvée
500 Internal Server Error Erreur serveur
7. Exemple d’API RESTful pour une association villageoise
Ressources
• Membres (/membres)
• Convois (/convois)
• Réunions (/reunions)
• Cotisations (/cotisations)
Exemple de routes RESTful
GET /membres
POST /membres
GET /membres/123
PUT /membres/123
DELETE /membres/123
8. Avantages d’une API RESTful
• Simple à comprendre et à implémenter
• Basée sur des standards (HTTP, URI, JSON)
• Compatible avec n’importe quel langage (JavaScript, PHP, Python, etc.)
• Scalable, performant, et adapté aux systèmes distribués
9. Bonnes pratiques
• Utiliser des noms de ressources au pluriel : /membres, /reunions
• Utiliser les bons verbes HTTP
• Retourner les bons codes de statut HTTP
• Fournir une documentation claire (Swagger, Postman, etc.)
• Gérer les erreurs proprement
• Authentifier les utilisateurs si nécessaire (token, OAuth…)
10. Outils utiles
• Postman : pour tester les APIs
• Swagger/OpenAPI : pour documenter les APIs
• Insomnia : alternative à Postman
Conclusion
Une API RESTful est aujourd’hui un standard incontournable pour la création de
services web. Elle repose sur des principes simples mais puissants permettant
de développer des systèmes interopérables, modulaires et maintenables.
Souhaitez-vous un exemple concret en Laravel, Express (Node.js) ou Django ?