Rest 当参数中的实体不';不存在(或访问被拒绝)
我有一个RESTful API方法,它使用一些参数创建/更新实体(例如Rest 当参数中的实体不';不存在(或访问被拒绝),rest,restful-architecture,http-response-codes,Rest,Restful Architecture,Http Response Codes,我有一个RESTful API方法,它使用一些参数创建/更新实体(例如POST/classes或PUT/classes/:id)。其中一个参数(例如,教师)是另一种实体的ID 我的问题是,当参数指示的实体不存在(或者用户无权访问此实体)时,此方法的正确响应代码是什么 我的选择是(对于POST和PUT方法): 404如果参数中的实体不存在 403如果我们无法从参数访问该实体(但有关该实体存在的信息不是秘密) 404如果我们无法从参数访问该实体(以防有关该实体的信息应保密) 我觉得这是非常描述性
POST/classes
或PUT/classes/:id
)。其中一个参数(例如,教师
)是另一种实体的ID
我的问题是,当参数指示的实体不存在(或者用户无权访问此实体)时,此方法的正确响应代码是什么
我的选择是(对于POST和PUT方法):
- 404如果参数中的实体不存在
- 403如果我们无法从参数访问该实体(但有关该实体存在的信息不是秘密)
- 404如果我们无法从参数访问该实体(以防有关该实体的信息应保密)
--
我的
404
在您描述的用例中是一个非感官错误,因为目标资源的当前表示形式当然不存在——您正在尝试创建它。更好的状态代码,以及解释引用对象不存在的响应对象。事实上,RFC中没有指定您的案例。每个状态都应该引用URL请求的实体(资源)。如果不存在的资源是参数,则它不是“目标实体”。最合适的状态是400