在开发API时,我陷入了两难境地。 假设我有一条资源路线,如下所示:
/顺序/:订单/可回收
此资源应检查订单是否可以退回商店。 现在,如果 IS 可以退回,则回复状态代码200,否则回复404。
一位同事正确地指出资源没有消失,我应该使用200作为任何回复,然后回复一个包含我的结果的机构。
两者都有其语义含义,而且我没有看到明显的赢家。
我们应该使用什么样的响应状态代码?身体里应该有什么东西吗?
答案 0 :(得分:4)
你的同事是对的。从规范(http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5),它说404是什么时候"服务器没有找到任何匹配Request-URI"。在您的情况下,服务器找到了需要返回的内容。您需要定义在响应此API时返回的实体的语法,并返回HTTP 200.它可以像布尔值一样简单,或者只要记录它就有意义。
如果给定" orderId"如果不存在,则应返回HTTP 404。