假设我articles
在/articles
.
这些文章可能有相关文章,所以我通过 GETting 获取它们/articles/{id}/related
。
如果没有相关文章,我应该返回什么?
我能想到:
404 Not Found
,也许有一个空集合204 No Content
200 Found
有一个空集合
有什么建议吗?(请给出论据)
顺便说一句,它可能适用于分页。如果我请求第 3 页,共 2 页,那么第 3 页将返回一个空集,它应该是一个404
?
假设我articles
在/articles
.
这些文章可能有相关文章,所以我通过 GETting 获取它们/articles/{id}/related
。
如果没有相关文章,我应该返回什么?
我能想到:
404 Not Found
,也许有一个空集合204 No Content
200 Found
有一个空集合有什么建议吗?(请给出论据)
顺便说一句,它可能适用于分页。如果我请求第 3 页,共 2 页,那么第 3 页将返回一个空集,它应该是一个404
?
404
不是你要找的。这是一个错误条件。你的情况不是错误。客户目前不知道有没有相关文章,想知道。那不是错误。
204
也不合适。RFC 2616 规定:
The server has fulfilled the request but does not need to return an
entity-body, and might want to return updated metainformation. The
response MAY include new or updated metainformation in the form of
entity-headers, which if present SHOULD be associated with the
requested variant.
204
没有说明没有相关文章。它只是说服务器不需要发送数据。
200
另一方面,使用空集合将满足您的需求。
我不会使用404
——这会告诉客户“我无法告诉你是否有任何相关文章”。如果给定的 {id} 根本无法识别,这将是合适的。你想要的是一个积极的回应告诉客户,是的,好问题,这里是相关文章的(空)列表。
204
由于相关原因,也不好。它指定没有 answer,这仍然与存在但恰好是空列表的answer 不同。POST
它的描述对 a比对 a更有意义GET
。
200
有一个空列表是正确的。
返回 200 和一个空数组。