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
Test reporting in un workflow di GitHub
Utilizzare la libreria EntityFrameworkCore.Exceptions per gestire le eccezioni di Entity Framework Core in modo tipizzato
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Ottimizzare la persistenza che coinvolge un solo oggetto con Entity Framework Core 7
Chiamare un endpoint ASP.NET Core protetto da Certificate Authentication
DateOnly e TimeOnly in .NET: e io che ci faccio?
Utilizzare il tag HTML template
Effettuare il pull di git LFS in un workflow di GitHub
Raggruppare i parametri di una minimal API in un singolo oggetto in ASP.NET Core
Le novità di .NET 7 e C# 11
Impostare il tema light o dark utilizzando i CSS
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes