Rest API应该如何处理带有错误FK Id的主体的POST请求?
Web API从Rest API应该如何处理带有错误FK Id的主体的POST请求?,rest,validation,asp.net-core-webapi,webapi,Rest,Validation,Asp.net Core Webapi,Webapi,Web API从POST请求主体包含错误引用(FK Id)时应该返回什么 例如,此请求:POST/api/addresses/,正文为: { "street": "Foo Street", "city": "Bar" "userId": 333, } 我有两个非常简单的问题: 如果数据库中没有用户333,我应该返回什么状态代码400或404 我应该在Insert之前调用DB并验证用
POST
请求主体包含错误引用(FK Id)时应该返回什么
例如,此请求:POST/api/addresses/
,正文为:
{
"street": "Foo Street",
"city": "Bar"
"userId": 333,
}
我有两个非常简单的问题:
404
顺便说一句。只是澄清一下:如果在URL中使用id,我将返回404。但这是针对
GET
请求的,比如api/users/333
。这里,我询问的是POST
(或PUT
)请求。我会传回400个错误请求
,因为请求没有正确的信息来完成请求。允许数据库失败,以系统要求的方式处理异常,并返回代码
要处理是否存在有效的
用户ID
,请确保呼叫者在呼叫前知道用户ID。在将POST
请求提交给/api/addresses/
之前,客户端可以向/api/users/
发出GET
请求,以获取有效的用户列表,或者在先前运行的过程中可能会传回一个虚拟用户ID
,例如登录。URL中的错误id和GET请求如何?例如:GET/api/users/333/addresses
?我应该先检查用户333是否存在吗?如果不是,我应该返回400还是404?如果您正在执行GET,那么这就是您尝试获取有效用户或不获取有效用户的关键。如果用户333
不存在,则返回404notfound
。可能包括一个正文,说明找不到用户333,以区别于找不到的404端点