让我们假设我们有两个对象。 post
和comment
。 post
有n-comment
s。
如果我想得到(或改变)comment
的post
,那么我也可以做一个
[DELETE, GET, PATCH] posts/{postId}/comments/{commentId}
代替
[DELETE, GET, PATCH] GET comments/{commentId}
但是......什么时候服务器注意到,给定的qazxsw poi存在,但有另一个qazxsw poi作为客户端请求说?那是......
commentId
)。这肯定是客户端错误,因此正确的状态代码应该在postId
范围内。
当无法找到给定URI的资源表示时,服务器应返回带有https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500状态代码的响应:
404
(未找到)状态代码表示源服务器没有找到目标资源的当前表示,或者不愿意透露存在该目标资源。 [...]
6.5.4. 404 Not Found状态代码用于指示语法上有效但在语义上无效的有效负载。
例如,假设您有一个端点来创建注释,并且有效负载应该包含此注释所属的帖子的标识符:
404
在这种情况下,如果422
引用不存在的帖子,服务器应该返回POST /comments HTTP/1.1
Host: example.org
Content-Type: application/json
{
"content": "Awesome post!",
"postId": 1
}
。