【问题标题】:HTTP GET 200 vs 204HTTP GET 200 与 204
【发布时间】: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


【解决方案1】:

假设

(1) 第一个 URL 只针对一个订单。

(2) 第二个 URL 是 0 个或多个订单的列表。


第一个响应中缺少订单应该是 404,因为非订单不是订单。

第二个响应中缺少的订单应该是 200,因为空列表仍然是一个列表。

【讨论】:

    猜你喜欢
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2016-10-24
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多