Services RESTful et opérations de mise à jour
Je sais RESTE est destiné à être axée sur les ressources, ce qui se traduit par des opérations CRUD sur ces ressources en utilisant le standard HTTP méthodes. Mais ce que je voulais juste mettre à jour un partie d'une ressource?
Par exemple, disons que j'ai Payment
de ressources et j'ai voulu marquer son statut de "paid
". Je ne veux pas POST
l'ensemble de la Payment
objet via HTTP (parfois je n'ai même pas de toutes les données).
Ce serait le repos manière de procéder? J'ai vu que Twitter utilise l'approche suivante pour la mise à jour de Twitter statuts:
http://api.twitter.com/1/statuses/update.xml?status=playing with cURL and the Twitter API
Cette approche est-elle dans "l'esprit" de REPOS?
Mise à JOUR: METTEZ -> POST
Quelques liens que j'ai trouvé, dans l'intervalle:
source d'informationauteur Igor Brejc | 2010-02-22
Vous devez vous connecter pour publier un commentaire.
Le moyen idéal de le faire est de modifier une partie (sous-ressources) de la ressource et de demander au serveur de renvoyer un 303 Voir d'Autres avec l'en-tête location à point à l'altération de la ressource. Le 303 Voir d'Autres indique au client que comme le résultat de la demande de certains autres ressources a changé et que le client doit mettre à jour la représentation qu'il détient.
Dans votre exemple (types de médias hypothétique, bien sûr):
POST devrait être utilisée pour la modification d'une ressource
EDIT: Martin Fowler article Richardson Modèle De Maturité est une très bonne intro pour se REPOSER.
Quel est le problème avec le PATCH?
La "modification partielle" problème semble appeler à elle, d'autant que, parfois, vous n'avez pas toutes les données nécessaires pour "remplacer"...
Mais honnêtement, je ne vois pas de point dans la suite de la "POST = créer, METTRE = remplacer, PATCH = mise à jour" de la philosophie religieuse, et je ne vois rien de mal en utilisant uniquement la POSTE.
Je suppose, c'est ce POST est pour: La 'U' dans 'POISSE'.
Vous publier des données à une ressource existante. La ressource décide quoi faire avec elle, et est mise à jour. Aussi, les données POST peut être qu'un fragment de l'ensemble complet.
Twitter approche est à mon humble avis pas Reposante, parce qu'ils surcharge OBTENIR.