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
Utilizzare la libreria EntityFrameworkCore.Exceptions per gestire le eccezioni di Entity Framework Core in modo tipizzato
Impostare dinamicamente il nome di una run di un workflow di GitHub
YARP: un reverse proxy in ASP.NET Core
Caricare un asset come parte di una release con un workflow di GitHub
Utilizzare il Service Bus Explorer integrato del portale Azure
Utilizzare parametri a livello di controller nel routing di ASP.NET Core
Azure Functions e OpenAPI: la coppia perfetta!
Effettuare l'upload di un file via FTP con la libreria FluentFTP di .NET
Gestire gli errori di caricamento delle immagini
Leggere i dati di configurazione di ASP.NET Core da Azure Key Vault
Gestire la query string nell'output cache di ASP.NET Core
Mostrare una preview durante l'upload di un'immagine in Blazor