Architecture client-serveur et API REST
Cette fiche résume les bases de l’échange entre un client et un serveur via HTTP, ainsi que les principes qui structurent une API REST.
Client, serveur et HTTP
Échange de base
Repères
- Le client envoie une requête, le serveur renvoie une réponse.
- HTTP est le protocole de communication applicative.
Ressources, routes et JSON
Définitions utiles
| Terme | Idée |
|---|---|
| Ressource | Objet métier accessible par l’API. |
| Route | URL associée à une ressource. |
| Endpoint | Point d’accès précis à une opération. |
À retenir
- Le corps des requêtes et réponses transporte souvent du JSON.
- Les endpoints distinguent les opérations sur les ressources.
Méthodes HTTP et statuts
Comparaison des méthodes
Lecture et création
- GET lit une ressource sans modification.
- POST crée une ressource ou déclenche un traitement.
Mise à jour et suppression
- PUT remplace ou met à jour une ressource.
- DELETE supprime une ressource.
Codes de statut
| Famille | Sens |
|---|---|
| 2xx | Succès. |
| 4xx | Erreur côté client. |
Mémo
CRUD côté HTTP : GET lit, POST crée, PUT remplace, DELETE supprime.
Authentification et principes REST
Schéma logique
Principes
- Un jeton prouve l’identité du client authentifié.
- Le jeton est souvent envoyé dans l’en-tête
Authorization.
Exemple d’appel REST
Cas concret
On veut récupérer l’utilisateur 42 via une API REST. On suppose que GET /users/42 renvoie un JSON si l’utilisateur existe.
- Le client cible la route
/users/42avec la méthodeGET. - Le serveur cherche la ressource utilisateur 42.
- Si la ressource existe, il renvoie un corps JSON.
L’appel est une lecture de ressource ; la réponse doit être exploitable ou signaler l’absence.
Mini-défi
- Quelle méthode utiliser pour créer une ressource ?
- Que signifie un code de statut 4xx ?
Synthèse express
- Une API REST expose des ressources via des routes HTTP.
- GET, POST, PUT et DELETE portent les actions standards.
- Les statuts 2xx, 4xx et 5xx résument le résultat.
- JSON transporte souvent les données échangées.
