【发布时间】:2016-06-18 19:27:43
【问题描述】:
我们正在设计一个公共 API,并试图通过以下案例找出 GET 的最佳做法:
路径参数:
/orders/{orderId}
找到:200 个响应正文。
未找到:404。
查询参数:
/Products/{productId}/orders?color={color}
找到的订单:200 个带有响应正文的订单。
未找到:在这种情况下,这应该是 200 还是 204,甚至是 404?
在我看来,它应该是200或204,因为在这种情况下找到了资源并且查询参数只是执行过滤效果。但是在这种情况下我们应该返回 200 还是 204?
【问题讨论】:
-
我就把这个留在这里:stackoverflow.com/a/20924573/3012385
-
理想情况下,您的 REST 响应状态代码应基于请求的最终结果。如果请求给出了期望的响应而不是状态码应该是 2xx 并且如果响应是相反的,那么它应该总是给出错误响应 (4xx) 。所以在你的情况下应该是 404。
-
在你的情况下; 404. 就这么简单。
标签: rest http http-status-code-404 http-status-code-200 http-status-code-204