TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.76K subscribers
Post #1486 1.58K
День 1202. #ЗаметкиНаПолях
Список Всех Маршрутов в
ASP.NET Core
Когда ваше приложение ASP.NET Core станет достаточно большим, вам может понадобиться полное представление обо всех маршрутах. Существует несколько способов объявления маршрутов. Вы можете использовать минимальные API, контроллеры, Razor Pages, gRPC, HealthCheck и т. д. Но все они используют одну и ту же систему маршрутизации под капотом.

Коллекция маршрутов может быть указана путем извлечения коллекции EndpointDataSource из DI.

Пример для минимальных API:
if (app.Environment.IsDevelopment())
{
app.MapGet("/debug/routes",
(IEnumerable<EndpointDataSource> sources) =>
string.Join("\n", sources.SelectMany(s => s.Endpoints)));
}

Добавление этого блока в пример приложения из документации выведет следующие маршруты:
HTTP: GET /
HTTP: GET /todoitems
HTTP: GET /todoitems/complete
HTTP: GET /todoitems/{id}
HTTP: POST /todoitems
HTTP: PUT /todoitems/{id}
HTTP: DELETE /todoitems/{id}
HTTP: GET /debug/routes

Если используются полноценные контроллеры, EndpointDataSource можно получить из сервисов. Также можно использовать различные свойства полученных маршрутов, чтобы вывести нужную информацию:

public string Get([FromServices] 
IEnumerable<EndpointDataSource> sources)
{
var sb = new StringBuilder();
var endpoints =
sources.SelectMany(s => s.Endpoints);
foreach (var e in endpoints)
{
sb.AppendLine(e.DisplayName);

if (e is RouteEndpoint re)
sb.AppendLine(re.RoutePattern.RawText);
}

return sb.ToString();
}

Источник: https://www.meziantou.net/list-all-routes-in-an-asp-net-core-application.htm
  • 👍 22
More from @netdeveloperdiary
  1. Oct 14, 2026Post #3373
  2. Oct 13, 2026День 2813. #ЗаметкиНаПолях #Async Ещё Раз Про Async/Await в C#. Часть 1 Почему существует…
  3. Oct 12, 2026День 2812. #Карьера #AI Как Разработчикам Оставаться Полезными, Когда Код Пишет ИИ? По мер…
  4. Oct 11, 2026День 2811. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
  5. Oct 10, 2026День 2810. #ЧтоНовенького #VSCode Более Быстрый и Лёгкий C# Dev Kit Мы, разработчики, люби…
  6. Oct 9, 2026День 2809. #Карьера 5 Навыков, Которые Помогут Быстрее Стать Сеньором. Окончание Начало 3.…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →