我应该 return 资源上的 404 错误导致空集吗?
Should I return a 404 error on a resource resulting in empty set?
如果我的资源具有以下端点,其中列出了该资源中的所有项目:
/api/v1/resources
这导致:
[
{
"id": 1,
"value": -100
},
{
"id": 2,
"value": -999
}
]
它有各种过滤器,例如:
/api/v1/resources?values_gte=999
如果过滤器排除所有资源并导致一个空集:
[]
我应该 return 404 状态代码还是 200 状态代码?
Should I return a 404 status code, or a 200 status code?
You asked for the current representation of the resource identified by "/api/v1/resources?values_gte=999" so here it is: an empty JSON array
请注意,如果有人请求 /foo.json
,这正是您将要执行的操作,并且您磁盘上的该文件恰好包含 []
的内容
HTTP 状态代码是标识响应语义的元数据;它们用于区分文档表示(2xx 成功)和错误表示(4xx 客户端错误)。
404 响应的 payload 将是“包含对错误情况的解释的表示,以及它是暂时的还是永久的情况。”,而不是空文档.
如果我的资源具有以下端点,其中列出了该资源中的所有项目:
/api/v1/resources
这导致:
[
{
"id": 1,
"value": -100
},
{
"id": 2,
"value": -999
}
]
它有各种过滤器,例如:
/api/v1/resources?values_gte=999
如果过滤器排除所有资源并导致一个空集:
[]
我应该 return 404 状态代码还是 200 状态代码?
Should I return a 404 status code, or a 200 status code?
You asked for the current representation of the resource identified by "/api/v1/resources?values_gte=999" so here it is: an empty JSON array
请注意,如果有人请求 /foo.json
,这正是您将要执行的操作,并且您磁盘上的该文件恰好包含 []
HTTP 状态代码是标识响应语义的元数据;它们用于区分文档表示(2xx 成功)和错误表示(4xx 客户端错误)。
404 响应的 payload 将是“包含对错误情况的解释的表示,以及它是暂时的还是永久的情况。”,而不是空文档.