我有 2 个资源用户和相册。用户有一个专辑列表。要获取专辑,有 2 个 REST API。
最佳答案
没有任何专辑真的被视为错误吗?假设专辑作为 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/