我应该返回什么Http响应代码,仅用于验证API方法?

时间:2015-07-20 21:41:27

标签: standards asp.net-web-api http-status-codes

我有一个图表的域模型。当用户尝试修改它时,将执行循环检查并返回相应的http响应代码。

但是,我们希望在客户端上构建一个建议的更改,并检查它是否对图表的当前状态有效。

代码很简单。只需让用户POST graphChangesToValidate使用某种验证方法,我的后端服务就可以确认是否可以进行更改...

我的问题是在这种情况下我应该返回哪些HTTP状态代码

200意味着建议的更改通过了验证。对于失败,我不知道400是否合适,因为请求格式正确,服务器只是说"我理解你的请求,答案是否定的。"

我认为只要验证方法完成,我就应该在内容中返回200,其中包含truefalse布尔值。

有没有更标准的方法来处理这个问题?

2 个答案:

答案 0 :(得分:2)

状态代码通常不会提供有关内容的信息,而只是提供请求/响应根据协议成功(或不是)。

A(200)状态代码是 http标头的一部分,您正在谈论的内容听起来像消息内容给我。

话虽如此,只要服务器和客户同意如何处理它,您就可以以任何方式使用/滥用它。但是有一些有用的消息对其他开发人员(以及一些API文档)有意义会更好。

答案 1 :(得分:1)

答案是......也许吧。我个人通常在响应中使用200以及其他详细信息,例如错误代码以及验证步骤失败的详细信息。 400范围内的http代码也可以用于验证错误。

请查看此问题,以获得一些好的评论和讨论:Is returning HTTP 409 appropriate for a validation check?

我认为通常只要请求被适当地格式化并接收,就应该使用200代码,然后业务逻辑处理验证错误。如果格式化时出错,则可以使用HTTP错误作为响应。