本文介绍了未找到的子实体的正确HTTP状态代码是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

说我有资源

  / Products / 123 

每个产品都有一个关联的供应商后端数据库中的实体。 POST和PUT请求必须指定供应商ID,然后用于从数据库中获取供应商实体。



如果用户发出 PUT / Products / 123 ,应该返回什么,找到,但包含错误的供应商ID,



404 Not Found 带有指定未找到哪个资源的消息?



409冲突

解决方案

Say I've got a resource

/Products/123

And each Product has an associated Supplier entity in the back end database. POST and PUT requests must specify a supplier ID, which is then used to fetch a Supplier entity from the database.

What should be returned if a user issues a PUT /Products/123, which is found, but includes a bad Supplier ID, which is not?

404 Not Found with a message specifying which resource wasn't found?

409 Conflict?

解决方案

The 404 status code may not be right choice because the resource that has not been found is not the target of your request:

The 409 status code might be suitable for this situation, but is not be the best choice (I wouldn't define this situation as a conflict):

I would go for 422 status code with a clear description in the response payload:

The following diagram (extracted from this page) is pretty insightful when it comes to picking the most suitable 4xx status code:

这篇关于未找到的子实体的正确HTTP状态代码是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-19 18:11