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
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Generare una User Delegation SAS in .NET per Azure Blob Storage
Gestione CSS in Blazor con .NET 9
Effettuare il refresh dei dati di una QuickGrid di Blazor
Collegare applicazioni server e client con .NET Aspire
Eseguire query in contemporanea con EF
Utilizzare DeepSeek R1 con Azure AI
Recuperare l'ultima versione di una release di GitHub
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Ottimizzazione dei block template in Angular 17
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
.NET Aspire per applicazioni distribuite