Documentare le nostre Web API con Swagger in ASP.NET Core 2.1

di , in ASP.NET Core,

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

Visualizza/aggiungi commenti

Documentare le nostre Web API con Swagger in ASP.NET Core 2.1 (#1301)
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi