c# - 网络 API 2 : BadRequest with custom error model

标签 c# rest asp.net-web-api asp.net-web-api2

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

最佳答案

不确定这是否仍然相关,因为这个问题已有 2 年多了...... 不过,这样做的方法确实是使用

return Content(HttpStatusCode.BadRequest, errorModel);

拥有一个包含详细信息的标准化错误模型实际上是一个很好的做法。另见此处:API Best Practices: Response Handling

关于c# - 网络 API 2 : BadRequest with custom error model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27439100/

相关文章:

rest - Neo4J Rest API理解

c# - WebAPI POST 方法抛出空异常

Python Eve 框架身份验证未应用于选定的 API

c# - 使用表单发布验证 OAuth 不记名 token

c# - Owin SelfHost WebApi - 客户端在响应期间关闭连接会引发异常吗?

c# - 什么是NullReferenceException,如何解决?

C#:方法参数需要索引器

c# - 通过 try 中的 lock 锁定资源。这是错的吗?

c# - 大量警告是否会使 C# 编译时间变长?

java - 在 Spring Boot 中,通过扩展 MappingJackson2HttpMessageConverter 添加自定义转换器似乎会覆盖现有转换器