Retourner true/false dans le REPOS de service?
Je suis de la conception d'un service REST et il y a un besoin de vérifier pour voir si une adresse est correctement entré. Ce que je suis en train de réfléchir est de savoir comment vous avez fait la conception d'une interface REST pour vérifier si une adresse est valide.
J'ai cette adresse /de service et je pourrais par exemple faire un POST /address/validation
qui retourne un xml/json vrai ou faux, mais il semble assez onu-REST-ful pour moi.
Une autre façon serait de faire un GET /address?street=xxx&nr=xxx&zipcode=xxx
(et un peu plus de paramètres) et retourner un 200 OK si elle est correcte ou un 404 not found si pas correct, qui peut être de plus de REPOS-foul?
J'ai commencé à faire de l'option 1), mais en plus je suis en train de penser à ce sujet, l'option 2), avec les OBTENIR se sent mieux...
Idées?
OriginalL'auteur Johan Danforth | 2011-04-28
Vous devez vous connecter pour publier un commentaire.
À partir d'un point de vue Reposante, vous êtes vraiment de retour d'une nouvelle ressource, de l'appeler AddressValidation, qui contiendra votre valeur true ou false. Donc, une approche pourrait être de faire un POST pour
/addressvalidation?street=xxx
etc. Je serais bien avec retourner le résultat au format JSON ou en utilisant les codes d'état. Je ne suis pas sûr 404 est approprié, cependant, vous voudrez peut-être regarder à cette discussion de validation des codes d'état de retour.J'ai le même problème avec la
GET /address?street=xxx&nr=xxx&zipcode=xxx
approche que vous proposez. Pour moi, si il retourne 404, ce qui signifie que l'adresse est littéralement pas trouvé (c'est à dire qui n'existe pas dans la base de données), plutôt que ce que c'est non valide (par exemple, le code postal est un format non valide; il ne peut pas être cette adresse). Encore une fois, voir le lié de discussion; il semble que 400 est une réponse plus appropriée.OriginalL'auteur Jacob Mattison
Comment?
Évidemment, vous pouvez utiliser n'importe quel type de support que vous souhaitez. Text/plain est juste sympa pour le retour de simples valeurs scalaires. Il est regrettable que l'obsession actuelle pour "xml ou json" vraiment perd certains avantages qui RESTE apporte la possibilité d'utiliser beaucoup de différents types de médias.
Vous pouvez retourner un objet, comme
{ "result": true }
Dire que vous pouvez retourner un "objet" sur HTTP n'est pas vraiment suffisant, car la définition de ce qu'un objet dépend d'un langage de programmation, plate-forme ou un type de support de la spécification. Ce que vous avez montré est une représentation JSON qui contient ce que JSON définit comme un objet. Que vous pouvez revenir. C'est exagéré, mais il faudra travailler.
OriginalL'auteur Darrel Miller
Je sens la POST production et le retour des codes d'état (200 OK si elle est correcte ou un 404 not found si pas correct) est plus reposant. Parce que vous êtes de ne pas Obtenir quelque chose ne semble pas approprié. Vous êtes à la Publication de certaines informations pour le serveur et il fait un peu de traitement (validation) et renvoie une réponse.
Obtenir est mieux que de POSTER dans ce cas, car l'opération est idempotent
OriginalL'auteur Reddy