TGViewer
C# 1001 notes C# 1001 notes @csharp_1001_notes · 6.64K subscribers
Post #839 2.93K
Полезный паттерн для Minimal APIs в .NET, если вы хотите организовать проект по принципу Vertical Slice Architecture.

Идея очень простая.

Вместо того чтобы держать все роуты в Program.cs, каждый endpoint выносится в отдельный класс.

Создаётся небольшой интерфейс:


public interface IEndpoint
{
void MapEndpoint(IEndpointRouteBuilder app);
}


Дальше каждый endpoint просто реализует этот интерфейс:

public class GetFollowerStats : IEndpoint
{
public void MapEndpoint(IEndpointRouteBuilder app)
{
app.MapGet("users/{userId}/followers/stats", async (
Guid userId,
ISender sender) =>
{
var query = new GetFollowerStatsQuery(userId);

Result<FollowerStatsResponse> result = await sender.Send(query);

return result.Match(Results.Ok, CustomResults.Problem);
})
.WithTags(Tags.Users);
}
}


Что это даёт:
• endpoints изолированы по фичам
• код становится намного чище
• проще масштабировать API
• удобно использовать вместе с CQRS / MediatR

Регистрация таких endpoints занимает буквально пару миллисекунд при старте приложения.

Отличный способ держать Minimal API структурированным даже в больших проектах.
More from @csharp_1001_notes
  1. Sep 20, 2026🧩 C# Channels: сообщение попало в очередь. Почему обработчик его не получил? Два воркера…
  2. Sep 16, 2026Эта задача проверяет понимание Memory<T>, pooling, ownership, IAsyncEnumerable, cancellati…
  3. Sep 16, 2026# C# 14: хитрая задача на ArrayPool, IAsyncEnumerable и время жизни памяти Есть поток данн…
  4. Sep 14, 2026# C# 14: конкурентный кеш без race condition Реализуйте потокобезопасный кеш: public seale…
  5. Sep 14, 2026🔍Тестовое собеседование с Senior C# разработчиком уже завтра 15 сентября(уже завтра!) в 1…
  6. Sep 11, 2026🔧 Как передать многострочный PEM через Aspire в ASP.NET Core Сертификаты и ключи в PEM со…
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 →