Nello script precedente (https://www.aspitalia.com/script/1413/Creare-Velocemente-Microservice-Minimal-API-ASP.NET-Core.aspx), abbiamo introdotto Minimal API, una nuova funzionalità di ASP.NET Core 6 che consente di dichiarare endpoint in maniera estremamente concisa, senza il codice boilerplate tipico dei controller.
Questa sintassi supporta ovviamente anche l'iniezione di dipendenze tramite l'engine di Inversion of Control di ASP.NET Core. Tutto ciò che dobbiamo fare, è aggiungere un parametro alla lambda corrispondente al tipo che vogliamo iniettare.
var builder = WebApplication.CreateBuilder(args); // qui configuriamo l'IoC container builder.Services.AddLogging(); var app = builder.Build(); app.UseHttpsRedirection(); app.MapGet("/people/{id}", (ILogger<Program> logger, int id) => { logger.LogInformation($"/people invoked with parameter {id}"); if (id == 0) return Results.NotFound(); return Results.Json(new Person { Name = "Marco" }); });
Nel nostro caso, abbiamo configurato il logging tramite il solito metodo AddLogging, che possiamo sfruttare tramite un paramero ILogger.
Ci sono anche dei casi speciali di dipendenze, quali HttpContext, HttpRequest e HttpResponse, che possiamo referenziare senza doverli registrare nel container.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Disabilitare automaticamente un workflow di GitHub
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Usare una container image come runner di GitHub Actions
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Paginare i risultati con QuickGrid in Blazor
Eseguire attività basate su eventi con Azure Container Jobs
Usare le variabili per personalizzare gli stili CSS
Utilizzare la session affinity con Azure Container Apps
Eseguire attività pianificate con Azure Container Jobs
I più letti di oggi
- Utilizzare WebAssembly con .NET, ovunque
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Utilizzare il trigger SQL con le Azure Function
- Ottimizzazione dei block template in Angular 17
- Disabilitare automaticamente un workflow di GitHub (parte 2)