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
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Determinare lo stato di un pod in Kubernetes
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Effettuare delete massive con Entity Framework Core 7
Utilizzare i nuovi piani dedicati di Azure Container Apps
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Usare le collection expression per inizializzare una lista di oggetti in C#
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Limitare le richieste lato server con l'interactive routing di Blazor 8
Gestire undefined e partial nelle reactive forms di Angular
Usare un KeyedService di default in ASP.NET Core 8