.NET Core API:在SwaggerUI中禁用多个路由扩展

问题描述 投票:4回答:1

我正在使用Swashbuckle.AspNetCore (4.0.1)生成一个简单的SwaggerUI进行测试,就像它描述的here一样。我的ApiController有两条路线:

[Route("api/values")]
[Route("api/{systemId}/values")]

SwaggerUI显示所有控制器端点两次(一个使用systemId,一个没有systemId)。这很好,但问题是,当我点击例如/api/values/example时,SwaggerUI也扩展了api/{systemId}/values/example。两个端点都在控制器内部使用相同的公共C#方法,为什么SwaggerUI打开两者都是有道理的。但它令人烦恼和困惑。

有可能阻止这种行为吗?

c# asp.net-core swagger swagger-ui swashbuckle
1个回答
4
投票

Name属性添加到R​​oute。

[Route("api/values", Name = "values1")]
[Route("api/{systemId}/values", Name = "values2")]

这将在包含端点规范的div中创建不同的ID,因此它将仅扩展您需要的ID。

© www.soinside.com 2019 - 2024. All rights reserved.