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

时间:2019-03-07 07:07:45

标签: c# asp.net-core swagger swagger-ui swashbuckle

我正在使用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会同时打开两个端点是很有意义的。但这很烦人和令人困惑。

是否可以停止这种行为?

1 个答案:

答案 0 :(得分:3)

Name属性添加到路线。

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

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