Come abbiamo introdotto nel nostro articolo su ASP.NET Core 7 (https://www.aspitalia.com/articoli/aspnet-core7/novita-aspnetcore-blazor-net7-p-4.aspx) in Minimal API possiamo raggruppare endpoint tramite route group:
app.MapGroup("/public/user")
.MapUsersApi()
.WithTags("Public");
app.MapGroup("/private/user")
.MapUsersApi()
.WithTags("Private")
.RequireAuthorization();
public static RouteGroupBuilder MapUsersApi(this RouteGroupBuilder group)
{
group.MapGet("/", GetAllUsers);
group.MapGet("/{id}", GetUser);
group.MapPost("/", CreateUser);
group.MapPut("/{id}", UpdateUser);
group.MapDelete("/{id}", DeleteUser);
return group;
}Questa tecnica presenta un gran numero di vantaggi, tra cui
- la possibilità di riutilizzare gli stessi endpoint in diversi contesti (per esempio private e public, nell'esempio in alto);
- la possibilità di definire dei prefissi di routing al di fuori dei veri e propri endpoint, così che si possano semplificare eventuali refactoring o aggiornamenti;
- poter associare configurazioni a interi gruppi, che verranno poi ereditate dai veri e propri endpoint, un po' come accade con i filtri a livello di controller (per esempio nel codice in alto abbiamo impostato come protetti tutti gli endpoint del gruppo private).
Ovviamente questi concetti si applicano anche alla output cache:
app.MapGroup("/public/user")
.MapUsersApi()
.CacheOutput(); // <-- eventuali policy o configurazioni quiNell'esempio in alto, abbiamo attivato l'output cache su tutti gli endpoint mappati sul gruppo /public/user. Ovviamente, nonostante questo gruppo supporti metodi di POST, PUT e DELETE, in assenza di custom policy, solo quelli in GET saranno oggetto di caching.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Effettuare chiamate API tramite GitHub App
Monitorare le tabelle di Azure SQL Database con Change Event Streaming
Avviare rapidamente un container con Azure Container Apps Express
Come automatizzare il download dei report di billing da GitHub Enterprise
Microsoft Fabric: la piattaforma unificata per l'ecosistema dati moderno
Esplorare database e container con Azure Cosmos DB Shell
Utilizzare il Null conditional assignment di C# 14
Stop alle password con Azure Managed Identity
Validare form con pseudo-classi CSS user-valid e user-invalid
Keynote Global Azure 2026 - ASPItalia.com
Utilizzare le librerie native di .NET per comprimere uno o più file in formato ZIP
Costruire endpoint SSE in ASP.NET Core
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Accedere a risorse e immagini in Windows Store app di Windows 8
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Permettere il Drag-and-drop solo su zone predefinite con Silverlight 2.0
- Consumare dati binari in realtime lato client con ASP.NET Core SignalR
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Personalizare l'icona e le funzionalità di un sito web per iOS e IE
- Caricamenti veloci da CDN e fallback locale con ASP.NET Core
- Utilizzare dati in formato XML in XAML
- Accedere a dati esposti con WebService con Silverlight 1.0


