0

如果我有一个具有以下端点的资源,该端点列出了该资源中的所有项目:

/api/v1/resources

这导致:

[
  {
    "id": 1,
    "value": -100
  },
  {
    "id": 2,
    "value": -999
  }
]

它有各种过滤器,例如:

/api/v1/resources?values_gte=999

如果过滤器排除所有资源并产生一个空集:

[]

我应该返回 404 状态码还是 200 状态码?

4

1 回答 1

1

我应该返回 404 状态码还是 200 状态码?

200

您询问了由“/api/v1/resources?values_gte=999”标识的资源的当前表示形式,所以它是:一个空的JSON 数组

请注意,如果有人要求,这正是您会做/foo.json的,并且您磁盘上的文件恰好包含内容。[]

HTTP 状态码是标识响应语义的元数据;它们用于区分文档表示(2xx 成功)和错误表示(4xx 客户端错误)。

404 响应的有效负载将是“包含错误情况解释的表示,以及它是临时还是永久条件。”,而不是空文档。

于 2021-02-15T22:01:23.047 回答