gpt4 book ai didi

rest - HTTP GET 请求状态 204 与 404

转载 作者:行者123 更新时间:2023-12-03 13:41:18 25 4
gpt4 key购买 nike

我有 2 个资源用户和相册。用户有一个专辑列表。要获取专辑,有 2 个 REST API。

  • user/{userId}/albums/{albumId} 如果未找到,则通过相册 ID 获取相册返回 404
  • user/{userId}/albums 通过 userId 获取所有专辑。在这种情况下,如果用户没有相册,那么状态码 204 或 404 是什么?
  • 最佳答案

    没有任何专辑真的被视为错误吗?假设专辑作为 JSON 数组返回,对这种情况的常见响应将是 HTTP 200,主体为空数组。

    返回 404 表示资源不存在,也就是说甚至不可能为这个特定用户请求专辑列表。但实际上,可以成功返回专辑列表,只是列表为空。对我来说,这似乎并不特别。这与使用不存在的 ID(使用您的其他端点)检索特定专辑完全相反;在这种情况下,404 是正确的。

    虽然 204 似乎比 404 更好,因为它至少告诉客户端请求成功但没有内容,它的意图并不是真正用于表示“成功缺席”。相反,它表示资源确实存在,但由于某种原因,服务器选择不将资源包含在响应正文中 - 例如,请求的目的可能是简单地将一些 header 传回给客户端。

    204 还可以用作对 POST 请求的响应,其中服务器执行了某些操作而不必创建任何新资源(这将暗示 201 CREATED),或者由于某些其他原因与返回任何内容无关资源。

    我认为很明显你需要的是

    GET /user/xxx/albums

    HTTP/1.1 200 OK

    []

    关于rest - HTTP GET 请求状态 204 与 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34312023/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com