找不到相关资源时的HTTP错误代码

时间:2019-02-22 08:46:54

标签: rest

假设我有一个像PATCH / person /这样的端点,我向其中发布了一些JSON

{ parent: <parentId> }

如果找不到具有id的人,那么适当的HTTP响应代码是什么?如果未找到具有id的人,则应该明显为404,但这是否也适用于请求本身的URI中未直接提及的资源?

我尝试查看一些有关HTTP错误代码的解释,但目前还不清楚。

1 个答案:

答案 0 :(得分:1)

您应使用422来指示服务器无法处理给定的实体。在RFC 5789中,文档定义了PATCH方法:

  

不可处理的请求:当服务器理解修补程序文档并且修补程序文档的语法似乎有效,但服务器可以使用422(不可处理实体)响应来指定无法处理请求。这可能包括尝试以某种导致资源无效的方式修改资源;例如,对格式正确的XML文档的修改将导致其不再格式正确。此状态代码可能还会显示更具体的错误,例如“冲突状态”,但更具体的错误通常会更有用。


先前herehere描述了解决类似情况的解决方案。