我有一个验证名称的服务,可以用来检查用户名是否正常。它看起来像这样:
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
感觉正确。 400
表示我的验证请求格式错误,无法识别要验证的数据。
我意识到这不是非常RESTful,因为“validate”基本上是一个动词,所以如果还有其他方法可以解决我的问题,请提出建议!
答案 0 :(得分:3)
如果验证请求成功,则200 (OK)
是正确的响应代码。就端点而言,您可以考虑
POST /validated-names