Web Api 2:带有自定义错误模型的 BadRequest
Posted
技术标签:
【中文标题】Web Api 2:带有自定义错误模型的 BadRequest【英文标题】:Web Api 2: BadRequest with custom error model 【发布时间】:2015-02-10 21:30:18 【问题描述】:ApiController
上可用的 BadRequest
方法仅接受字符串:
// Summary:
// Creates an System.Web.Http.Results.ErrorMessageResult (400 Bad Request) with
// the specified error message.
//
// Parameters:
// message:
// The user-visible error message.
//
// Returns:
// An System.Web.Http.Results.InvalidModelStateResult with the specified model
// state.
protected internal virtual BadRequestErrorMessageResult BadRequest(string message);
为什么没有接受自定义错误模型 T 的重载?
例如,我可能想在消息中返回一个代码:
message: "Error message",
code: "1000",
我可以这样做,但我怀疑一定有一个潜在的原因(也许符合 RESTful 标准?):
return Content(HttpStatusCode.BadRequest, errorModel);
【问题讨论】:
【参考方案1】:不确定这是否仍然相关,因为这个问题已经超过 2 年了...... 不过,这样做的方法确实是使用
return Content(HttpStatusCode.BadRequest, errorModel);
拥有一个包含详细信息的标准化错误模型实际上是一种非常好的做法。也可以在这里查看:API Best Practices: Response Handling
【讨论】:
以上是关于Web Api 2:带有自定义错误模型的 BadRequest的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将自定义错误页面与 MVC 站点一起使用,但不能在 Web API 中使用?