Asp.net web api Swagger不显示真正的错误消息

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,使其能够正确显示错误?或者我应该稍微改变一下我的错误,以便能够

我们使用.NETWebAPI框架,并在WebAPI之上使用swagger进行注释和开箱即用的UI体验。到目前为止,它工作得很好。但是,当我从WebAPI(Http 400)返回错误时,如下代码所示:

返回错误请求(“某些错误”)

然而,当我这样做时,似乎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吗?