web-dev-qa-db-fra.com

Point de terminaison booléen dans une API RESTful

Je suis en train de concevoir une API JSON RESTful qui devrait avoir un point de terminaison booléen tel que /item/vote qui peut être false signifiant qu'un utilisateur n'a pas voté pour un élément spécifique ou true signifiant qu'il a voté.

J'ai actuellement du mal à sélectionner un parmi plusieurs modèles possibles:

codes d'état HTTP

 PUT/item/vote => défini sur true 
 DELETE/item/vote => défini sur false 
 GET/item/vote => code d'état 204 => true | code d'état 404 => faux 

JSON

 PUT/item/vote HTTP/1.1 
 Type de contenu: application/json 
 
 {
 "Vote": vrai 
} 
 GET/item/vote HTTP/1.1 
 
 
 HTTP/1.1 200 OK 
 Type de contenu: application/json 
 
 {
 "vote": vrai 
} 

L'une de ces deux approches est-elle meilleure ou s'agit-il simplement d'une question de préférence? Je préfère actuellement l'approche du code de statut HTTP car je l'ai déjà vue.

7
1' OR 1 --

La deuxième approche est hautement préférable. PUT est destiné à remplacer la ressource sur le serveur par le contenu que vous PUTting. De même, DELETE est destiné à supprimer une ressource, pas à définir sa valeur.

8
Eric Stein