2012-06-01 2 views
2

J'ai une ressource qui représente une collection de tags:Méthode HTTP à utiliser pour ajouter à une collection dans une API RESTful

/users/{username}/tags 

Un client API devrait être en mesure d'ajouter un ensemble de balises à cette collection en une seule requête HTTP. J'ai réfléchi à la façon de faire cela et j'ai d'abord pensé à utiliser les méthodes PUT ou POST. Cependant, je pense que cela impliquerait que le client «met en place» ou «remplace» les balises de cette collection. Quelle serait la méthode HTTP la plus appropriée (ou peut-être un mécanisme différent) pour "ajouter" plusieurs tags à cette collection?

{HTTP METHOD} /users/{username}/tags 

Demande du corps:

["short", "crazy", "funny"] 

Répondre

6

Si les balises envoyées dans le corps de la demande sont destinées à ajouter à une collection, plutôt que de remplacer, je suggère POST. Si vous avez l'intention de remplacer les tags existants, utilisez PUT.

5

PUT /users/alganet/tags remplace toutes les étiquettes.

POST /users/alganet/tags ajoute plus de tags.

Vous pouvez également utiliser PATCH.

PATCH /users/alganet/tags modifie les balises.

corps possible:

{"POST":["rest", "php"], "DELETE":["soap"]}

Le corps doit avoir un format de patch spécifique correspondant à l'en-tête Accept-Patch. Le corps de l'échantillon ci-dessus est un format personnalisé pour les correctifs, mais vous pouvez utiliser un diff propre par exemple.

Questions connexes