Negli ultimi script abbiamo introdotto gli automatismi resi possibili dal nuovo attributo ApiController in ASP.NET Core 2.1 per quanto riguarda la dell'input e il binding dei parametri con le varie componenti della request Web API.
Un'ulteriore automatismo è presente in caso di upload di file. Non dobbiamo far altro che creare un'action con un parametro di tipo IFormFile oppure, in caso di file multipli, di tipo IEnumerable
[HttpPost, Route("image")] public ActionResult<UploadResultDto> UploadProductImage(IFormFile image) { //... }
Il client potrà inviare uno o più file per mezzo di una richiesta HTTP con Content-Type: multipart/form-data. In questo caso l'attributo ApiController appone automaticamente l'attributo Consumes("multipart/form-data") sull'action per imporre l'utilizzo di quel content type. Se intendiamo rinunciare a questa funzionalità, agiamo ancora una volta sulle opzioni.
services.Configure<ApiBehaviorOptions>(options => { options.SuppressConsumesConstraintForFormFileParameters = true; });
Grazie alle convenzioni che abbiamo visto, riduciamo la quantità di codice ripetitivo, che si traduce in maggiore leggibilità e maggiore rapidità nello sviluppo della nostra applicazione.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Utilizzare Container Queries nominali
Simulare Azure Cosmos DB in locale con Docker
Usare il colore CSS per migliorare lo stile della pagina
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Usare le navigation property in QuickGrid di Blazor
Utilizzare una qualunque lista per i parametri di tipo params in C#
Creare una libreria CSS universale - Rotazione degli elementi