Exercice : utiliser Swashbuckle pour créer un document OpenAPI

Effectué

Dans cet exercice, vous allez ajouter Swagger et l’interface utilisateur Swagger à une application API web ASP.NET Core. Les outils Swagger permettent de créer le document OpenAPI qui décrit votre API web.

Notes

Téléchargez le code source sur votre ordinateur local pour effectuer cet exercice. Après avoir téléchargé le fichier, vous devrez le décompresser.

Télécharger : Application API web ASP.net Core.

  1. Sélectionnez le bouton Télécharger au milieu à droite de l’écran.
  2. Décompressez le fichier exercise.zip.

Ajouter les outils Swagger

  1. Ouvrez Visual Studio et recherchez l’application API web ASP.NET Core.

    Ouverture de la solution Visual Studio.

  2. Dans l’Explorateur de solutions, cliquez avec le bouton de droite sur le projet, puis sélectionnez le menu Gérer les packages NuGet.

    Cliquer avec le bouton droit sur Gérer les packages NuGet.

  3. Dans Gestionnaire de package NuGet, recherchez Swashbuckle.AspNetCore. Sélectionnez le package et installez-le.

    Gestionnaire de package NuGet.

    Le package NuGet est maintenant installé. Fermez l’onglet Gestionnaire de package NuGet.

Configurer Swashbuckle pour générer un document OpenAPI

  1. Ouvrez le fichier Startup.cs .

    Fichier : Startup. cs

  2. Ajoutez la directive suivante juste au-dessus de la ligne, namespace InventoryManagement.ApiApp.

    /* === using directive BEGIN === */
    using Microsoft.OpenApi.Models;
    /* === using directive END === */
    
  3. Remplacez tout le code de la méthode ConfigureServices(IServiceCollection) par le code suivant :

        services.AddControllers();
    
        /* === SwaggerGen BEGIN === */
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo { Title = "Inventory Management", Version = "v1" });
        });
        /* === SwaggerGen END === */
    
  4. Dans la méthode Configure(IApplicationBuilder, IWebHostEnvironment), recherchez l’instruction conditionnelle if (env.IsDevelopment()) et remplacez tout ce qui précède cette instruction par le code suivant :

        /* === SwaggerUI BEGIN === */
        app.UseSwagger(c =>
        {
            c.PreSerializeFilters.Add((swagger, httpReq) => {
                var server = new OpenApiServer() { Url = $"{httpReq.Scheme}://{httpReq.Host.Value}" };
                swagger.Servers = new List<OpenApiServer>() { server };
            });
        });
        app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "InventoryManagement.ApiApp v1"));
        /* === SwaggerUI END === */
    

    Remarque

    Il est très important que les points de terminaison Swagger soient activés seulement dans l’environnement de développement. Sinon, il peut exposer votre API au public.

    Vous venez de terminer l’activation de la fonctionnalité de document OpenAPI sur votre application API web ASP.NET Core. Enregistrez le fichier Startup.cs. La capture d’écran suivante indique à quoi ressemblent vos modifications.

    Fichier modifié : Startup. cs

Générer le fichier de document OpenAPI

  1. Sélectionnez le bouton Déboguer en haut et au milieu de Visual Studio.

    Déboguer dans Visual Studio.

    Il ouvre automatiquement votre navigateur web et affiche la page de l’interface utilisateur Swagger.

    Page de l’IU Swagger.

    La page d’erreurs 404 peut s’afficher. Dans ce cas, entrez l’URL, https://localhost:<port_number>/swagger, dans la barre d’adresses de votre navigateur. Dans la capture d’écran suivante, l’URL est https://localhost:44371/swagger, par exemple.

    Page introuvable.

  2. Sélectionnez le lien pour ouvrir la page de document OpenAPI.

    Page de l’IU Swagger pour OpenAPI.

  3. Le document OpenAPI est affiché à la volée.

    Document OpenAPI.

Votre application API web ASP.NET Core est maintenant prête à produire le document OpenAPI.