我们使用的是.NET WebAPI框架,我们在web api之上使用swagger进行注释和开箱即用的UI体验。到目前为止,它一直运行得很好。但是,当我从WebAPI(Http 400)返回如下代码的错误时:
return BadRequest("Some error");
然而,当我这样做时,Swagger似乎不能正确地解析错误。基本上,它显示response 0
。这肯定是错误的,因为当我转到Chrome DevTools
时,我看到我的请求的响应是HTTP400,正如我所期望的那样。
如何配置Swagger,使其能够正确显示错误?或者我应该以不同的方式抛出我的错误,以便能够在swagger中看到它?
发布于 2017-12-22 05:13:31
您可以像这样注释您的操作
[ProducesResponseType(typeof(ResponseObjectTypeHere), 200)]
[ProducesResponseType(typeof(ErrorResponseObjectTypeHere), 400)]
如果启用swagger来读取和使用xml文档,还可以在xml文档中添加类似下面这样的内容
/// <response code="200">Description</response>
/// <response code="400">Description of error</response>
我在带有swagger的.net核心web api项目中使用了这些,对于常规的.net web api项目也应该是一样的。
发布于 2020-03-29 22:04:39
您可以通过在***.Web.Core模块中启用其中一个ABP的配置(SendAllExceptionsToClients),将异常详细信息发送给客户端,如下所示:
public override void PreInitialize()
{
if (_env.EnvironmentName.ToLower() == "development")
Configuration.Modules.AbpWebCommon().SendAllExceptionsToClients = true;
}
然后,您将获得客户端上的异常详细信息。建议仅在开发过程中使用。
https://stackoverflow.com/questions/47823228
复制相似问题