2014-09-05 127 views
1

我有一个验证名称的服务,可用于检查用户名是否正确。它看起来是这样的:验证请求的HTTP响应

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

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

因此服务点是检查提出的用户名的有效性,还检查我的数据库,看看是否它已经被占用。我的问题是:如果有验证错误,应答码是否应该是400 (Bad Request)

如果我正在构建一个用户API来创建用户,这就是我在与Abdul在这里展示时所要做的,但我不是。在这种情况下,请求用于验证,输入数据是可接受的,并且响应包含请求的表示,这是所提供数据的错误列表,因此200 OK感觉正确。 A 400将表明我的验证请求格式错误,并且无法识别要验证的数据。

我意识到这不是非常RESTful,因为“验证”基本上是一个动词,所以如果有另一种方法来解决我的查询,请建议!

回答

3

如果验证请求成功,则200 (OK)是正确的响应代码。至于端点,您可以考虑

POST /validated-names 
+0

如果验证失败会怎么样?我建议'200'也是适当的,因为验证请求是成功的。 – Conan 2014-09-05 17:32:36

+0

对不起,我的意思是“执行验证的请求已成功执行,无论输出如何”。 – 2014-09-05 17:45:37