Перегруженные методы ASP.NET Swagger API для конечных точек не отображаются - PullRequest
0 голосов
/ 20 мая 2019

Я использую Swashbuckle Swagger для документации API, и у меня есть контроллер с 4 конечными точками, 3 из которых имеют одно и то же имя (но имеют разные параметры), и Swagger их не отображает. Я не могу изменить имена этих методов, а также не хочу разрешать конфликты и использовать только первый. Я хочу отобразить их все в интерфейсе Swagger, но не знаю как.

Я пытался реализовать другие обходные пути, такие как указание аннотаций маршрутов и т. Д., Но это не сработало.

Методы такие:

public IHttpActionResult Get([FromUri] int[] myId, [FromUri] int[] otherId, DateTime fromDate, DateTime toDate, bool allEntities = false)

public IHttpActionResult Get([FromUri] int[] myId, DateTime fromDate, bool allEntities = false)

public IHttpActionResult Get([FromUri] int[] myId, [FromUri] int[] otherId, DateTime date, string someOtherId = null, bool allEntities = false, string lan = "en")

Желаемый результат - показать все эти методы на SwaggerUI, а не только первый. Есть ли способ сделать это?

1 Ответ

0 голосов
/ 20 мая 2019

К сожалению, Swagger не допустит этого.Я не знаю, как выглядит содержимое каждого метода, но вы можете рассмотреть возможность объединения трех в один метод, который принимает комбинацию всех параметров из трех, а затем, основываясь на полученных параметрах, выполняет логику в зависимости от того, какой существующий метод создаетбольше всего смысла (я предполагаю, что вы сохраните эту логику в частных методах).Извините за плохие новости!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...