让我们假设我们有两个对象。 post
和comment
。 post
有n-comment
个。
如果我想获取(或更改)comment
中的post
,那么我也可以进行
[DELETE, GET, PATCH] posts/{postId}/comments/{commentId}
代替
[DELETE, GET, PATCH] GET comments/{commentId}
但是...当服务器通知给定的commentId
退出,但又有另一个postId
时(客户端请求说),该怎么办?那是...
答案 0 :(得分:2)
这绝对是客户端错误,因此正确的状态代码应在4xx
范围内。
当找不到给定URI的资源表示形式时,则服务器应返回状态为404
的响应:
404
(未找到)状态码表示原始服务器未找到目标资源的当前表示或不愿意透露该资源的存在。 [...]
422
状态码用于指示有效载荷,该有效载荷在语法上有效,但在语义上无效。
例如,考虑到您有一个端点来创建评论,并且有效负载应包含该评论所属的帖子的标识符:
POST /comments HTTP/1.1
Host: example.org
Content-Type: application/json
{
"content": "Awesome post!",
"postId": 1
}
在这种情况下,如果postId
引用的帖子不存在,则服务器应返回422
。