当 REST 资源不存在时,正确的 HTTP 状态代码是什么?

What's the right HTTP status code when REST resource isn't there?

我对 HTTP 状态代码有点困惑。假设有人呼叫 .../person/15 这样的端点,但实际上没有标识符为 15 的人。

我之前返回的是 412,但当我仔细阅读该状态代码时,它应该与 headers 有关。

那将是 404(未找到)。如果您能够检测到此人已被删除(并且他们的 ID 不会被重复使用),请使用 410(消失)。

您可能要使用的 HTTP 状态代码是 HTTP/1.1 404 Not Found。还有一个包含所有这些代码的非常有用的列表:

https://en.wikipedia.org/wiki/List_of_HTTP_status_codes