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

.NET Core API: Disable multiple route expanding in SwaggerUI

我正在使用 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。两个端点都将转到控制器内相同的 public C# 方法,这就是为什么 SwaggerUI 打开这两个端点是有道理的。但这很烦人和令人困惑。

是否可以阻止这种行为?

Name 属性 添加到路线。

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

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