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
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Generare velocemente pagine CRUD in Blazor con QuickGrid
Combinare Container Queries e Media Queries
Ottimizzazione dei block template in Angular 17
Creare una libreria CSS universale: Cards
Recuperare l'ultima versione di una release di GitHub
Ordine e importanza per @layer in CSS
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Referenziare un @layer più alto in CSS
Generare un hash con SHA-3 in .NET