Web API 2:具有自定义错误模型的错误请求

本文关键字:错误模型 错误 请求 自定义 API Web | 更新日期: 2023-09-27 18:34:00

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);

Web API 2:具有自定义错误模型的错误请求

不确定这是否仍然相关,因为这个问题已经超过 2 年了......尽管如此,做到这一点的方法确实是使用

return Content(HttpStatusCode.BadRequest, errorModel);

拥有一个包含详细信息的标准化错误模型实际上是一种非常好的做法。另请参阅此处:API 最佳实践:响应处理