在 net core 2.2 中隐藏招摇的不良响应示例模型
Posted
技术标签:
【中文标题】在 net core 2.2 中隐藏招摇的不良响应示例模型【英文标题】:Hide swagger bad response example model in net core 2.2 【发布时间】:2019-10-13 22:55:28 【问题描述】:我将我的 netcore 2.1 项目升级到 2.2,但我的 swagger 页面有问题。
以前在招摇的错误响应中,它只显示没有模型的“错误请求”。
但是在我升级到 net core 2.2 后,错误请求示例中显示了一个模型。图片如下。
我如何隐藏它以便它只显示“错误请求”。
我已经使用 CustomApiConvention 进行了测试,但到目前为止还没有成功。
[HttpGet("id")]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesDefaultResponseType]
public async Task<ActionResult<Employee>> GetEmployee(int id)
var employee = await _context.Employee.FindAsync(id);
if (employee == null)
return NotFound();
return employee;
如何隐藏它以便它只显示“错误请求”?
【问题讨论】:
无法测试,但我认为删除ProducesDefaultResponseType
会这样做。对于 2xx 响应类型,您必须在 ProducesResponseType
属性中添加适当的 typeof
。
不,还是一样。
【参考方案1】:
给遇到同样问题的人。只需将其添加到您的代码中即可。
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
.ConfigureApiBehaviorOptions(options =>
options.SuppressMapClientErrors = true;
);
这将禁用 ProblemDetails 响应。
https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-2.2#problem-details-for-error-status-codes
【讨论】:
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
给出了一个警告(在我的 ASP.NET Core 3.0 项目中),但不是更改为 .Version_3_0
,只是将其忽略也完全可以。
太棒了,我已经搜索了好几天了!我正在使用net5.0
,这对我有用:services.AddControllers(x => x.Conventions.Add(new ApiExplorerVersionConvention())).ConfigureApiBehaviorOptions(x => x.SuppressMapClientErrors = true; );
以上是关于在 net core 2.2 中隐藏招摇的不良响应示例模型的主要内容,如果未能解决你的问题,请参考以下文章
“内容”是啥意思:在招摇/openapi“响应”中是啥意思:
获取 ASP.NET-Core 2.2 控制器中的控制器名称和方法名称
将项目从 2.2 更新到 3.1(缺少程序集)或如何在 .NET Core 中使用 API POST 请求时,PostAsJsonAsync()在 .Net Core 3.1 中不起作用 [重复]
在 .Net Core 2.2 Api 中扩展 IIS 日志