Comment soutenir Partielle des Mises à jour (PATCH) dans le RESTE de
Je veux mettre en œuvre les mises à jour partielles pour ma ressource que j'ai de grandes ressources et souhaitez mettre à jour les informations partielles à partir d'elle.Je suis allé à travers les liens suivants, mais pas
en mesure de déterminer si l'utilisation de HTTP POST ou PATCH méthodes.
HTTP MODIFIER verbe pour le REPOS?
Comment soumettre Reposant mises à jour partielles?
http://jacobian.org/writing/rest-worst-practices/
https://github.com/archiloque/rest-client/issues/79
http://tools.ietf.org/html/draft-dusseault-http-patch-16
http://greenbytes.de/tech/webdav/draft-dusseault-http-patch-06.html
http://jasonsirota.com/rest-partial-updates-use-post-put-or-patch
http://bitworking.org/news/296/How-To-Do-RESTful-Partial-Updates
https://github.com/dharmafly/jsonpatch.js
Merci de proposer toute solution valable pour cela.
- u got toute solution
Vous devez vous connecter pour publier un commentaire.
Selon RFC5789 (http://tools.ietf.org/html/rfc5789), c'est précisément ce PATCH est pour:
La distinction entre le PATCH et la METTRE décrit comme:
Les limites de la POSTE sont également décrits:
Je vous suggère de lire les RFC et faire votre propre avis, mais pour moi, cela semble assez clair de la coupe des demandes de correctifs doivent être traitées comme des mises à jour partielles. (NB: ils ne sont PAS idempotent, contrairement à la METTRE.)
EDIT: comme l'a souligné Eugene, dans les commentaires, bien que les demandes de correctifs sont
"neither safe nor idempotent as defined by [RFC2616]"
, ils peuvent être formulées ainsi:PATCH
peut être faite quantité en incluant lesIf-Match
en-tête, comme décrit dans la RFC vous faites allusion. Effectivement, il est fortement suggéré dans le RFC pour le faire, comme l'application des correctifs de la version incorrecte peut bousiller une référence, contrairement à un qui remplace simplement la chose entière.Vous devez utiliser la méthode de PATCH comme décrit dans la RFC-7386 "json fusion PATCH".
E. g. si vous voulez changer la valeur de "a" et la suppression de "f" dans les ressources comme:
Vous pouvez obtenir ce par l'envoi d':
PATCH est à utiliser avec un format de patch, de niveau document correctifs uniquement (aka un diff sur la représentation réelle). Son utilisation à d'autres fins est douteuse et contestable, et il n'est pas clair que la méthode a été conçu pour les non-media-type utilise.
En général, un POSTE sera la bonne approche, mais vous pouvez scinder votre ressource en de multiples ressources au lieu et à modifier celles à la place.
[Édité pour plus de clarté, que certains ne lisent pas les commentaires]
partial updates for my resource
serait en conflit avec ce PATCH est censé faire:entity contains a set of instructions describing how a resource currently residing on the origin server should be modified to produce a new version.
C'est à partir de rfc5789, mais les plus âgés de rfc2068 est similaire. Également en ce qui concerne ladiff on the actual bytes
, vous n'êtes pas, éventuellement, de se cette confondu avec HTTP plages où les réalisateurs sont seulement tenus de mettre en œuvre des plages d'octet (mais cela peut être étendu à d'autres unités)?