Проблема с формированием роутов после подключения swagger

Подключил в проект swagger. Обнаружил что он затягивает только те action's, в которых прописан роут. Пустой [HttpGet] или [HttpGet()] не катит.

Проблема в дефолтном роуте.

Т.е. можно так:

http://domen.com/controller

http://domen.com/controller/index

И будет одно и тоже, т. к. стоит роут:

       app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}"
                );
        });

И получается если я ставлю 2 роута, то swagger формирует 2 адреса API с одинаковой начинкой.

Пробовал прописывать так: [HttpGet("Home/{Index?}")] - но тогда swagger думаешь что Index - это параметр.

Как прописать роут, не потеряя обе ссылки? Ну и конешно чтобы swagger отобразил хорошо.


Ответы (1 шт):

Автор решения: Виталий Шебаниц

сделал два похожих метода:

    [HttpGet]
    public IActionResult Index() => this._Index();

    [HttpGet("DeviceRoute/Index")]
    public IActionResult _Index()
    {
        List<DeviceRouteViewModel> result = _deviceRouteManager.Value.GetChildsByParent(null)
        return View("Index",result);
    }

И теперь в swagger затягивает только второй. Но когда переходишь на роут, не записывая action выполняется первый метод

→ Ссылка