Pourquoi ne pas METTRE HTTP permis de faire des mises à jour partielles dans une API REST?

Qui dit RESTful Api doit prendre en charge partielle des mises à jour séparément via HTTP PATCH?

Il ne semble pas avoir les avantages. Il ajoute plus de travail à mettre en œuvre sur le côté serveur et plus logique sur le côté client de décider quel genre de mise à jour à la demande.

Je me suis poser cette question dans le contexte de la création d'une API REST avec HTTP qui fournit une abstraction de données connues modèles. Exigeant PATCH pour les mises à jour partielles plutôt que de METTRE intégral ou partiel, se sent comme elle n'a pas d'avantages, mais je pourrais en être persuadé.

Liées

http://restcookbook.com/HTTP%20Methods/idempotency/ - cela implique que vous n'avez pas de contrôle sur le logiciel serveur qui peut mettre en cache les requêtes.

Quelle est la justification derrière interdisant l'accès partiel METTRE? - pas de réponse claire donné, que la référence à ce HTTP définit pour Mettre vs PATCH.

http://groups.yahoo.com/neo/groups/rest-discuss/conversations/topics/17415 - montre la division de pensées à ce sujet.

  • Comment est-ce que HTTP définit pour METTRE vs PATCH pas de réponse claire?
  • Parce que basé sur la RFC 2616 MIS de devrait être suffisant pour la mise à jour de la représentation d'une ressource. Aussi, RESTE utilise des méthodes HTTP, mais ne dispose pas d'une relation 1:1 avec eux et, par conséquent, est ouvert à l'interprétation.
  • C'est suffisant pour le remplacement de la représentation de la ressource, pas de mise à jour de pièces et de morceaux de.
  • Je crois que la clé ici est le type de média. Sérialisée de représentations comme JSON et XML peuvent être partiellement mises à jour sans perdre la totalité de la représentation. D'autres types de médias sont représentées différemment et nécessiterait le remplacement complet de maintenir la représentation complète. C'est mon observation, mais je suis encore en train de lire le sujet. Merci.
  • Tout simplement parce qu'ils peuvent être ne veut pas dire que c'est l'interprétation correcte de la METTRE. À partir de la RFC: The PUT method requests that the enclosed entity be stored under the supplied Request-URI. cela signifie Que l'entité de gros, et pas seulement les mises à jour de ladite entité.
  • Voici un autre avis au sujet de pourquoi vous pourriez avoir besoin de la différence: restful-api-design.readthedocs.org/en/latest/.... Généralement, il ya une raison pour les choses, et que "le trouble obsessionnel-compulsif spec nerds" n'ont pas l'habitude de faire des règles. 🙂
  • merci pour le lien
  • Un cas d'utilisation pour la mise à jour partielle à l'aide de la METTRE déverrouillage d'un compte bloqué. Vous ne voulez pas que le hachage de mot de passe de fuite pour le client, ni voulez-vous la réinitialisation de mot de passe. - Posté par @Vicky Ronnen
  • Il semble que la définition de la METTRE pourrait tout aussi facilement être affinée afin d'englober à la fois partielle et complète des mises à jour. Je suis toujours du mal à comprendre pourquoi une méthode entièrement nouvelle (PATCH) est préférable à ce.

InformationsquelleAutor Brenden | 2013-11-01