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
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Paginare i risultati con QuickGrid in Blazor
Usare le collection expression per inizializzare una lista di oggetti in C#
Utilizzare Model as a Service su Microsoft Azure
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Generare la software bill of material (SBOM) in GitHub
Utilizzare i primary constructor in C#