#c# #asp.net-core #swagger #swagger-ui #swashbuckle
#c# #asp.net-core #swagger #swagger-пользовательский интерфейс #swashbuckle
Вопрос:
Я использую Swashbuckle.AspNetCore (4.0.1)
для генерации простого SwaggerUI для тестирования, как это описано здесь. У моего ApiController есть два маршрута:
[Route("api/values")]
[Route("api/{systemId}/values")]
SwaggerUI отображает все конечные точки контроллера два раза (одна с SystemID, другая без SystemID). Это хорошо, но проблема в том, что, когда я нажимаю, например, /api/values/example
SwaggerUI тоже расширяется api/{systemId}/values/example
. Обе конечные точки обращаются к одному и тому же общедоступному методу C # внутри контроллера, понятно, почему SwaggerUI открывает оба. Но это раздражает и сбивает с толку.
Возможно ли остановить это поведение?
Ответ №1:
Добавьте Name
свойство к маршруту.
[Route("api/values", Name = "values1")]
[Route("api/{systemId}/values", Name = "values2")]
Это создаст разные идентификаторы в div
, содержащие спецификации конечной точки, поэтому он будет расширять только тот, который вам нужен.
Комментарии:
1. Также была проблема с перегруженными методами в моем контроллере.