Asp.net web api Swagger不显示真正的错误消息
我们使用.NETWebAPI框架,并在WebAPI之上使用swagger进行注释和开箱即用的UI体验。到目前为止,它工作得很好。但是,当我从WebAPI(Http 400)返回错误时,如下代码所示:Asp.net web api Swagger不显示真正的错误消息,asp.net-web-api,swagger,swagger-ui,Asp.net Web Api,Swagger,Swagger Ui,我们使用.NETWebAPI框架,并在WebAPI之上使用swagger进行注释和开箱即用的UI体验。到目前为止,它工作得很好。但是,当我从WebAPI(Http 400)返回错误时,如下代码所示: 返回错误请求(“某些错误”) 然而,当我这样做时,似乎Swagger无法正确解析错误。它基本上显示响应0。这肯定是错误的,因为当我转到chromedevtools时,我看到我的请求得到了预期的HTTP 400响应 如何配置Swagger,使其能够正确显示错误?或者我应该稍微改变一下我的错误,以便能够
返回错误请求(“某些错误”)代码>
然而,当我这样做时,似乎Swagger无法正确解析错误。它基本上显示响应0
。这肯定是错误的,因为当我转到chromedevtools时,我看到我的请求得到了预期的HTTP 400响应
如何配置Swagger,使其能够正确显示错误?或者我应该稍微改变一下我的错误,以便能够在大摇大摆中看到它吗?你可以这样注释你的行为
[ProducesResponseType(typeof(ResponseObjectTypeHere), 200)]
[ProducesResponseType(typeof(ErrorResponseObjectTypeHere), 400)]
如果允许swagger阅读和使用xml文档,还可以在xml文档中添加类似的内容
/// <response code="200">Description</response>
/// <response code="400">Description of error</response>
///说明
///错误描述
我在.net核心web api项目中使用了它们,对于常规的.net web api项目也应该是一样的 您只需在***.Web.Core模块中启用ABP的一个配置(SendAllExceptionsToClient),即可将异常详细信息发送到客户端,如下所示:
public override void PreInitialize()
{
if (_env.EnvironmentName.ToLower() == "development")
Configuration.Modules.AbpWebCommon().SendAllExceptionsToClients = true;
}
然后,您将获得客户机上的异常详细信息。仅在开发过程中推荐。我实际上尝试用[ProducesResponseType(typeof(BadRequestResult),400)]
注释控制器方法。但是,除了响应类型0
消息之外,我仍然没有看到任何内容。当我抛出返回BadRequest(“”)时代码>您可以在那里显示该部分的yaml吗?