Méthodes et codes de statut
Méthodes, idempotence et codes de statut essentiels.
Objectifs
À la fin de cette leçon, vous saurez :
- choisir la méthode HTTP adaptée à chaque intention ;
- lire et classer les codes de statut ;
- relier méthodes et opérations CRUD d'une application.
Les méthodes : l'intention du client
| Méthode | Intention | Corps de requête | Idempotent |
|---|---|---|---|
| GET | lire une ressource | non | oui |
| POST | créer / soumettre | oui | non |
| PUT | remplacer entièrement | oui | oui |
| PATCH | modifier partiellement | oui | en principe |
| DELETE | supprimer | rarement | oui |
Idempotent : répéter la requête produit le même effet que l'exécuter une fois. Supprimer deux fois la même tâche : le résultat final est le même. Créer deux fois avec POST : deux ressources. Cette propriété compte pour les reprises après erreur réseau.
Le mappage CRUD classique :
GET /tasks → liste
POST /tasks → crée
GET /tasks/7 → lit
PATCH /tasks/7 → modifie partiellement
DELETE /tasks/7 → supprime
Les codes de statut : la réponse du serveur
Trois familles à maîtriser :
2xx succès 4xx le client a tort 5xx le serveur a failli
Codes essentiels :
| Code | Signification | Usage typique |
|---|---|---|
| 200 OK | tout va bien | lecture réussie |
| 201 Created | ressource créée | réponse à un POST |
| 204 No Content | succès sans corps | réponse à un DELETE |
| 400 Bad Request | requête mal formée | validation refusée |
| 401 Unauthorized | qui êtes-vous ? | absence/invalidité d'authentification |
| 403 Forbidden | je sais qui vous êtes, mais non | rôle insuffisant |
| 404 Not Found | ressource absente | mauvais identifiant |
| 409 Conflict | conflit d'état | doublon, version obsolète |
| 500 Internal Server Error | bug côté serveur | exception non gérée |
La nuance 401/403 mérite d'être gravée : 401 = inconnu, 403 = connu mais interdit.
Exercice
Pour chaque scénario, donnez méthode, chemin et code de réponse attendu :
- Afficher la liste des utilisateurs.
- Créer l'utilisateur Paul.
- Demander l'utilisateur n°999 (qui n'existe pas).
- Modifier seulement l'email de Paul.
- Supprimer la tâche n°12.
- Un utilisateur non connecté demande ses favoris.
Résumé
- Méthode = intention ; idempotence = propriété à connaître.
- 2xx/4xx/5xx : succès / faute client / panne serveur.
- 201 pour les créations, 204 pour les suppressions, 401 ≠ 403.
Correction disponibleCherchez d’abord par vous-même.Voir la correction
Correction
Réponses détaillées
GET /users→200POST /users→201GET /users/999→404PATCH /users/paul→200DELETE /tasks/12→204GET /favoris→401
Question bonus à méditer : pourquoi le cas 6 ne renvoie-t-il pas 403 ? Parce qu'on ne peut pas juger une autorisation sans identité : d'abord s'identifier (ou échouer), ensuite vérifier le droit.