2014-09-05 4 views
1

J'ai un service qui valide les noms, qui peut être utilisé pour vérifier si un nom d'utilisateur est OK. Il ressemble à ceci:Réponse HTTP pour la demande de validation

POST http://names.myservice.com/validate 
content-type: application/json 
{"name": "Abdul Hideo McDodgycharacter¬§(*&^$%£!"} 

=> 200 OK 
{"errors": "contains invalid characters"} 

Ainsi, le point de service est de vérifier la validité d'un nom d'utilisateur proposé, vérifier aussi dans ma db pour voir si elle a déjà été prise. Ma question est la suivante: le code de réponse devrait-il être 400 (Bad Request) lorsqu'il y a des erreurs de validation?

Si je construisais une API utilisateur pour créer des utilisateurs, c'est ce que je ferais en présence d'Abdul ici, mais je ne le suis pas. Dans ce cas, la demande est pour validation, les données d'entrée sont acceptables, et la réponse contient la représentation demandée, qui est une liste d'erreurs pour les données fournies, donc un 200 OK se sent bien. Un 400 indiquerait que ma demande de validation a été malformée et que les données à valider n'ont pas pu être identifiées.

Je me rends compte que ce n'est pas très RESTful, parce que "valider" est fondamentalement un verbe, donc s'il y a une autre façon de faire cela qui résout ma requête, s'il vous plaît le suggérer!

Répondre

3

Si la demande de validation a abouti, alors 200 (OK) est le bon code de réponse. En ce qui concerne les points de terminaison, vous pouvez envisager

POST /validated-names 
+0

Que faire si la validation a échoué? Je suggère qu'un «200» est également approprié alors, parce que la demande de validation a été réussie. – Conan

+0

Désolé, je voulais dire "la demande de validation a été exécutée avec succès, indépendamment de la sortie". –

Questions connexes