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
Sviluppo applicazioni x-plat con .NET MAUI
Utilizzare .NET Framework con le Azure Function in modalità isolata
Gestire la query string nell'output cache di ASP.NET Core
Montare blob e file share su Azure App Service
Le novità di Angular 14
Abilitare HTTP/3 in ASP.NET Core 7.0
Migrare un progetto ASP.NET Core da .NET 6 a .NET 7
Taggare la output cache in base al routing in ASP.NET Core
Usare il versioning con i controller di ASP.NET Core Web API
Personalizzare le richieste con i rule set di Azure Front Door
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Migrare un repository che contiene large file storage objects in GitHub