Action tipizzate in un controller Web API di ASP.NET Core 2.1
Swagger (https://swagger.io) è divenuto oramai lo standard de-facto per la documentazione di una RESTful API. ASP.NET supporta questo formato sin dalle prime versioni di Web API, grazie alla libreria open source Swashbuckle (https://github.com/domaindrivendev/Swashbuckle.AspNetCore).
In particolare, Swashbuckle.AspNetCore è il pacchetto che dobbiamo referenziare per aggiungere il supporto a Swagger a un progetto ASP.NET Core Web API. Possiamo installarlo tramite NuGet con il seguente comando:
Install-Package Swashbuckle.Aspnetcore
A questo punto, la configurarezione del servizio per la generazione del file json avviene all'interno della classe Startup:
public void ConfigureServices(IServiceCollection services) { // .. altro codice qui .. services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "My Sample API", Version = "v1" }); }); }
Per esporre questo document in uno specifico endpoint, possiamo poi usare l'extension method UseSwagger:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, DiagnosticListener listener) { // .. altro codice qui .. app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseHttpsRedirection(); app.UseMvc(); }
Per default, la documentazione viene esposta all'indirizzo /swagger/v1/swagger.json.
Nel codice in alto, abbiamo anche usato UseSwaggerUI per esporre una pagina interattiva di help su /swagger/index.html.
Swashbuckle sfrutta appieno la nuova classe ActionResult<T> di ASP.NET Core 2.1, che abbiamo introdotto in uno script precedente (https://www.aspitalia.com/script/1300/Action-Tipizzate-Controller-Web-API-ASP.NET-Core-2.1.aspx), per mostrare informazioni dettagliate sui tipi restituiti dalle singole action:
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Disabilitare automaticamente un workflow di GitHub (parte 2)
Usare le collection expression per inizializzare una lista di oggetti in C#
Potenziare Azure AI Search con la ricerca vettoriale
Load test di ASP.NET Core con k6
Utilizzare la libreria Benchmark.NET per misurare le performance
Eseguire una query su SQL Azure tramite un workflow di GitHub
Assegnare un valore di default a un parametro di una lambda in C#
Evitare la command injection in un workflow di GitHub
Evitare il flickering dei componenti nel prerender di Blazor 8
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Reactive form tipizzati con FormBuilder in Angular
Definire stili a livello di libreria in Angular
I più letti di oggi
- Utilizzare WebAssembly con .NET, ovunque
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Utilizzare il trigger SQL con le Azure Function
- Disabilitare automaticamente un workflow di GitHub (parte 2)
- Ottimizzazione dei block template in Angular 17
- Paginare i risultati con QuickGrid in Blazor