Comment mettre à jour une collection de ressources REST
J'ai un RESTE d'URI pour une liste de ressources, quelque chose comme:
http://foo.com/group/users
Chacun de ces utilisateurs ont un numéro de séquence et je veux exposer un moyen de renuméroter les valeurs pour tous les utilisateurs de la collecte et de faire ce changement, disponible à toute personne qui accède à la liste. Puisque c'est une action sur l'ensemble de cette collection, je ne suis pas sûr de la façon de les accomplir.
Je peux envisager une URL comme http://foo.com/group/users?sequence=normalize
mais ni un PUT
ni un POST
vraiment de sens pour l'ensemble de la liste, à moins que je soumettre l'ensemble de la collection avec les nouveaux numéros de message de données.
Comment puis-je faire une mise à jour de l'ensemble d'une collection de ce genre dans une bonne manière sans avoir à renvoyer toutes les ressources mises à jour dans la collection?
source d'informationauteur Nick Gotch
Vous devez vous connecter pour publier un commentaire.
Après la raffian commentaire de ma première réponse, j'ai retravaillé ma réponse à être plus Reposant...
PATCH
Cette méthode est généralement conçu pour mettre à jour partiellement l'état d'une ressource. Dans le cas d'une liste de ressources, nous pourrions envoyer une liste avec uniquement les éléments à mettre à jour et les identifiants des éléments dans la liste. La requête suivante serait:
POST
sur la liste de ressourcesCette méthode est couramment utilisée pour ajouter un élément dans la liste gérée par la ressource. Donc, si vous voulez en tirer profit pour cette action, nous avons besoin de passer à l'intérieur de la demande d'une allusion au sujet de l'action à exécuter. Nous avons le choix d'ajouter ce soit dans un en-tête ou dans la charge utile.
Avec le en-tête de l'approchevous aurez quelque chose comme ça:
Avec le charge utile approchevous aurez quelque chose comme ça:
Espère que cela vous aide,
Thierry
Vous pouvez utiliser à la fois le PATCH et les POST sur les Uri. J'aimerais utiliser le PATCH, si j'étais vous. C'est la meilleure solution pour le vrac mises à jour.
Sémantiquement parlant, le HTTP PATCH méthode est la bonne façon de faire. C'est également décrite dans le actuellement la réponse choisie.
Cependant, la deuxième méthode décrite dans la réponse choisie n'est pas reposant, parce que vous avez inventé de nouveaux verbes à l'intérieur d'une requête POST. C'est du SAVON, pas de REPOS.