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
Gestire il breaking change di Entity Framework Core 7 con tabelle che usano identity e trigger
Definire le impostazioni di cache a livello di controller in ASP.NET Core 7
Migrare un repository git da Azure DevOps a GitHub
Definire lo stile CSS in base alle dimensioni del container
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Personalizzare le richieste con i rule set di Azure Front Door
Migrare un progetto ASP.NET Core da .NET 6 a .NET 7
Sviluppo applicazioni x-plat con .NET MAUI
Migrare un repository che contiene large file storage objects in GitHub
.NET 7 Live Q&A
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Effettuare l'upload di un file via FTP con la libreria FluentFTP di .NET