L'URL indique la ressource elle-même. Un "client" est une ressource sur laquelle on peut agir, et qui doit donc faire partie de l'URL de base : /orders/view/client/23
.
Les paramètres ne servent qu'à paramétrer l'accès à la ressource. Ceci est particulièrement vrai pour les messages et les recherches : /orders/find?q=blahblah&sort=foo
. La frontière est mince entre les paramètres et les sous-ressources : /orders/view/client/23/active versus /orders/view/client/23?show=active
. Je recommande le style sous-ressource et réserve les paramètres pour les recherches.
Puisque chaque point de terminaison REprésente un transfert d'état (pour manier la mnémonique), les en-têtes personnalisés ne devraient être utilisés que pour les choses qui n'impliquent pas le nom de la ressource (l'url), l'état de la ressource (le corps) ou les paramètres affectant directement la ressource (les paramètres). Cela laisse les véritables métadonnées sur la demande pour les en-têtes personnalisés.
HTTP dispose d'une très large sélection de collecteurs qui couvrent la plupart de vos besoins. J'ai déjà vu des en-têtes personnalisés dans le cadre d'une requête de système à système opérant pour le compte d'un utilisateur. Le système proxy valide l'utilisateur et ajoute " X-User: userid
"dans les en-têtes et utiliser les informations d'identification du système pour accéder au point de terminaison. Le système récepteur valide que les informations d'identification du système sont autorisées à agir au nom de l'utilisateur, puis valide que l'utilisateur est autorisé à effectuer l'action.