Проблема с формированием роутов после подключения 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 выполняется первый метод