布尔资源的HTTP状态代码

Mar*_*yeb 5 api-design http http-status-codes

在工作中开发API时遇到了一个难题。假设我有一条通往资源的路线,如下所示:

/ order /:orderId /可返回

该资源应该检查是否可以将订单退还给商店。现在,如果它可返回的,它正在答复状态码200,否则就返回404。

一位同事正确地指出资源没有用完,我应该对任何响应使用200,然后使用包含我的结果的正文进行响应。

两者都有其语义含义,我看不出明显的赢家。

我们应该使用什么响应状态代码?体内应该有东西吗?

jor*_*dan 5

你的同事是对的。根据规范(http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5),它说 404 是“服务器没有找到与请求 URI 匹配的任何内容”。在您的情况下,服务器找到了需要返回的内容。您需要定义在响应此 API 时返回的实体的语法,并返回 HTTP 200。它可以像布尔值一样简单,也可以是任何有意义的内容,只要它被记录在案。

如果给定的“orderId”不存在,则应返回 HTTP 404。