假设我在articles
处有一个资源/articles
。
这些文章可能包含相关文章,因此我通过GETting /articles/{id}/related
获取它们。
我应该返回的是没有相关文章?
我能想到:
404 Not Found
,可能是一个空集合204 No Content
200 Found
有什么建议吗? (请提出论据)
顺便说一下,它可能适用于分页。如果我请求第3页的第2页,那么第3页将返回一个空集,如果它是404
?
答案 0 :(得分:15)
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
可以满足您的需求。
答案 1 :(得分:6)
我不会使用404
- 这会告诉客户“我无法告诉你是否有任何相关的文章”。如果根本不识别{id},那将是合适的。你想要的是一个积极的回应告诉客户,是的,好问题,这是相关文章的(空)列表。
204
也不好。它指定没有答案,这仍然与 的答案不同,但恰好是空列表。它的描述对于POST
比对GET
更有意义。
200
恰到好处。
答案 2 :(得分:4)
使用空数组返回200。