Mettre à jour une propriété unique dans une API REST

Dans la conception d'une nouvelle API, nous faisons de notre mieux pour suivre les schémas établis par le REPOS. La question que je me pose est la meilleure méthode à suivre lorsque vous essayez de mettre à jour une propriété unique. Par exemple:

Imaginez que vous avez une simple Voiture de ressources:

{
   "make": "Chevrolet",
   "model": "Chevelle",
   "year": 1966,
   "color": "black",
   "for_sale": true
}

Supposons que la propriété for_sale est quelque chose que vous pensez sera mis à jour régulièrement par l'utilisateur. J'ai deux options:

  1. PUT la totalité de la ressource avec for_sale ensemble de false. Pour une taille raisonnable des ressources, cela semble bien, cependant, dans la plupart des cas, nos ressources sont assez grandes, d'un lot de déchets dans l'envoi de la totalité de la ressource pour mettre à jour un seul, souvent changé de propriété.

  2. POST et de faire une mise à jour partielle en n'incluant l'élément à mettre à jour, tels que:
    {"for_sale":false} C'est mieux car il nécessite beaucoup moins de frais généraux.

Mais j'ai en quelque sorte semblent être atteint pour quelque chose d'encore plus simple, mais je ne semble pas trouver la bonne approche. Il serait très pratique de proposer un simple PUT à une URL (qui ne nécessite pas de corps de la requête) pour mettre à jour cette propriété. Je vois ce que Google est en train de faire dans leur API pour accomplir cela, mais il se sent juste un peu RPC-ish, bien que j'aime la simplicité.

POST /blogs/blogId/posts/postId/comments/commentId/approve
(marques d'un commentaire comme non spam)

POST /blogs/blogId/posts/postId/comments/commentId/spam (marques un commentaire comme spam)

Quelqu'un peut-il offrir quelques conseils sur la meilleure façon d'aborder la mise à jour d'une propriété unique dans un cadre de ressources (de préférence dans un léger manière) qui a suivi, RESTE principes? Merci!!!!

InformationsquelleAutor ski_junkie | 2014-02-20