API-02 · Respecter la sémantique HTTP
Signal
- Un
GETqui change l’état. - Un
PUTou unDELETEqui n’est pas idempotent. - Un échange qui compte sur une session côté serveur pour enchaîner les requêtes.
- Une API qui calque les verbes HTTP sur le CRUD des tables.
Pourquoi
GETest réservé aux opérations sans effet, ce qui permet le cache et une bonne part de la capacité du web à monter en charge.GET,PUTetDELETEsont idempotents : on peut les rejouer en cas d’erreur ou de doute.- Chaque requête porte tout ce qu’il faut pour la traiter.
- Les verbes ne sont pas le CRUD des tables. Une ressource représente souvent un comportement, pas une entity enregistrée.
Exceptions
Aucune.
Correction
Une ressource par intention métier, et le verbe qui correspond à sa sémantique.
Voir aussi
UC-01 demande des endpoints orientés intention. Les ressources de comportement en sont la forme REST : POST /wallets/{id}/blocks.