对于仅验证 API 方法,我应该 return 什么 Http 响应代码?
What Http response code should I return for validation-only API methods?
我有一个图的领域模型。当用户试图修改它时,会执行循环检查,并且适当的 http 响应代码是 returned.
但是,我们想在客户端上构建提议的更改,并只检查它是否对图的当前状态有效。
代码很简单。只需让用户 POST
graphChangesToValidate
进行某种验证方法,我已经完成这项工作的后端服务可以确认是否可以进行更改...
我的问题是 在这种情况下我应该 return 什么 HTTP 状态代码?
200
表示提议的更改已通过验证。对于失败,我不知道 400
是否合适,因为请求的格式很好,服务器只是说 "I understood your request, the answer is no."
我在想,只要验证方法完成,我就应该 return 一个 200
,内容中带有 true
或 false
布尔值。
有没有更标准的方法来处理这个问题?
答案是……也许吧。我个人通常在响应中使用 200 和其他详细信息,例如包含验证步骤失败详细信息的错误代码。 400 范围内的 http 代码也可适当用于验证错误。
查看此问题以获得一些好的评论和讨论:
我认为通常只要请求的格式正确并被接收,就应该使用 200 代码,然后业务逻辑就是处理验证错误的部分。如果格式错误,则可以使用 HTTP 错误作为响应。
状态代码通常不提供有关内容的信息,只是 request/response 根据协议成功(或不成功)。
A (200) 状态码是 http header 的一部分,你说的听起来像是 content 消息。
话虽如此,只要服务器和客户端就如何处理它达成一致,您就可以 use/abuse 以任何方式处理它。但是最好有一些对其他开发人员有意义的有用消息(以及一些 API 文档)。
我有一个图的领域模型。当用户试图修改它时,会执行循环检查,并且适当的 http 响应代码是 returned.
但是,我们想在客户端上构建提议的更改,并只检查它是否对图的当前状态有效。
代码很简单。只需让用户 POST
graphChangesToValidate
进行某种验证方法,我已经完成这项工作的后端服务可以确认是否可以进行更改...
我的问题是 在这种情况下我应该 return 什么 HTTP 状态代码?
200
表示提议的更改已通过验证。对于失败,我不知道 400
是否合适,因为请求的格式很好,服务器只是说 "I understood your request, the answer is no."
我在想,只要验证方法完成,我就应该 return 一个 200
,内容中带有 true
或 false
布尔值。
有没有更标准的方法来处理这个问题?
答案是……也许吧。我个人通常在响应中使用 200 和其他详细信息,例如包含验证步骤失败详细信息的错误代码。 400 范围内的 http 代码也可适当用于验证错误。
查看此问题以获得一些好的评论和讨论:
我认为通常只要请求的格式正确并被接收,就应该使用 200 代码,然后业务逻辑就是处理验证错误的部分。如果格式错误,则可以使用 HTTP 错误作为响应。
状态代码通常不提供有关内容的信息,只是 request/response 根据协议成功(或不成功)。
A (200) 状态码是 http header 的一部分,你说的听起来像是 content 消息。
话虽如此,只要服务器和客户端就如何处理它达成一致,您就可以 use/abuse 以任何方式处理它。但是最好有一些对其他开发人员有意义的有用消息(以及一些 API 文档)。