Asp.NET Web Api:向客户返回有意义的错误?

时间:2013-06-21 15:15:17

标签: rest asp.net-web-api http-status-codes

我自己创建了一个标准的asp.net web api项目,并在那里有一个帖子。

该帖子基本上会将一些值插入到数据库中但在此之前我需要对备用数据库进行多项不同的检查,如果有什么不检查我想要返回具有NON 200 http状态的客户端代码,但我应该使用哪些?

要返回的推荐状态代码是什么?我还想用它返回一些文本,其中包含可以识别错误内容的其他信息。

或者是否建议返回200和额外的JSON有效负载,以确定是否存在问题以及它是什么

有没有人有任何例子?

提前致谢

2 个答案:

答案 0 :(得分:4)

如果您正在执行的是验证逻辑,并且此验证逻辑由于某种原因而失败,则可以使用400 BadRequest。就附加信息而言,您可能会在正文中返回一些信息,例如作为JSON有效负载:

{
    "errorMessage":"Validation failed because user doesn't exist in alternative database"
}

另一方面,如果您尝试更新不存在的实体,您还可以发送404状态代码。

答案 1 :(得分:1)

除了Darin在这个帖子中所说的,这里还有一个good reference on status codes。我还发现this article在处理ASP.NET WebAPI错误方面很有价值。