我在web api项目上工作。
这是行动方法:
public async Task<IHttpActionResult> GetDamageEvents(int siteObjectId, int statusId)
{
try
{
if (siteObjectId == null || siteObjectId == 0) return (what status?)
if (statusId == null || statusId == 0) return (what status?)
//some logic
return Ok(some result);
}
catch (Exception)
{
return BadRequest();
}
}
正如您在上面的方法中所看到的,我有两个参数siteObjectId和statusId,
如果这些参数为null或0,我需要返回客户端相应的状态代码。
它应该是什么状态代码?我认为BadRequest
状态代码太笼统了。
答案 0 :(得分:3)
很少有开发人员会考虑使用状态400
错误请求:
另一方面,由于语法格式错误,服务器无法理解该请求。客户不应该在没有修改的情况下重复请求。
开发商状态422
似乎最合适
422(不可处理实体)状态代码表示服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法是正确的(因此400 (错误请求)状态代码不合适)但无法处理包含的指令。例如,如果XML请求主体包含格式正确(即语法正确)但语义错误的XML指令,则可能会出现此错误情况。
您将使用哪一个,由您决定
请查看此链接,请http://www.bennadel.com/blog/2434-http-status-codes-for-invalid-data-400-vs-422.htm