假设我们有一个这样的端点:
/user/my@email.com/notification
它返回由服务器生成的单个通知对象。 当您请求此URL时,可能会发生以下三种情况:
用户不存在,在这种情况下,我返回404
用户存在,并且存在通知。在这种情况下,我会在正文中返回200
通知
用户存在,不存在任何通知。在这种情况下,我可以返回404 NOT FOUND
或204 NO CONTENT
。
我倾向于204
。
404
表示存在错误情况,此端点实际上是有效的,只是该对象现在不可用,但在2秒后再次请求时可能可用。
此外,您不是负责创建对象的人,因此您无法帮助解决问题。
答案 0 :(得分:1)
我认为,您应该使用200 OK
代替204 No Content
回复。
以下是204
的{{3}},它说:
204响应允许服务器指示操作已经发生 成功应用于目标资源,同时暗示了 用户代理不需要遍历其当前的“文档” 查看“(如果有的话)。
这意味着204
代码意味着资源没有改变,或者对于手头的过程来说不重要。 不意味着(至少没有明确表示)资源是“空的”(仅响应为空)。
响应404
客观上是不正确的,因为资源存在。