比方说,我有一个资源articles
,在/articles
。
这些文章可能有相关的文章,所以我通过获取获取它们/articles/{id}/related
。
我应该什么样的回报是有没有相关的文章?
我能想到的:
-
404 Not Found
,也许有一个空的集合 -
204 No Content
-
200 Found
与一个空集合
有何意见? (请在参数)
顺便说一句,它可以适用于分页。 如果我要求的2 3页,然后在第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
也不好,相关的原因。 它指出没有答案 ,这仍然是从回答是有,但恰好是空列表不同。 它描述更有意义的POST
比一个GET
。
200
与空列表是恰到好处。