asp.net core OpenAPI 仕様の使用法 (Swagger Swashbuckle SwaggerUI)

1. はじめに

    OpenAPI は、REST API を記述するための言語に依存しない仕様です。これにより、コンピューターとユーザーは、ソース コードに直接アクセスしなくても、REST API の機能を理解できるようになります。その主な目的は次のとおりです。

  • 別々のサービスを接続するために必要な労力を最小限に抑えます。
  • サービスを正確に文書化するために必要な時間を短縮します。

    要するに:

  • OpenAPI は仕様です。
  • Swagger は、OpenAPI 仕様を使用するツールです。たとえば、OpenAPIGenerator Swashbuckle や SwaggerUI などです。

2.スワッシュバックルの使用

asp.net core に基づく Web API アプリケーションがすでに存在すると仮定し、具体的な作成プロセスについては
https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&tabs=visual-studio
を参照してください。 この記事では、MvcMovie を例として取り上げます。

1.スワッシュバックルを取り付ける

ソリューション エクスプローラーでプロジェクトを右クリックし、
[NuGet パッケージの管理] 検索ボックスに「Swashbuckle.AspNetCore」
と入力します。 [参照] タブから最新の「Swashbuckle.AspNetCore」パッケージを選択し、[インストール] をクリックします。

2. Swagger ミドルウェアを追加して構成する

Swagger ジェネレーターを Startup.ConfigureServices メソッドのサービス コレクションに追加します。
 

        public void ConfigureServices(IServiceCollection services)
        {
            // Register the Swagger generator, defining 1 or more Swagger documents
            services.AddSwaggerGen();

            ......
         }

 Startup.Configure メソッドで、ミドルウェアが生成された JSON ドキュメントと Swagger UI を提供できるようにします。
 

       public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {

            // Enable middleware to serve generated Swagger as a JSON endpoint.
            app.UseSwagger();

            // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
            // specifying the Swagger JSON endpoint.
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "Test API V1");
            });
             
            ......
         }

 アプリケーションを実行してドキュメントと UI インターフェイスにアクセスします

ドキュメンテーション

 

 3. API 情報と説明
AddSwaggerGen メソッドに渡される構成操作により、作成者、ライセンス、説明などの情報が追加されます。
Startup クラスで、OpenApiInfo クラスを使用するために次の名前空間をインポートします。

using Microsoft.OpenApi.Models;

 

    public void ConfigureServices(IServiceCollection services)
        {
            // Register the Swagger generator, defining 1 or more Swagger documents
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo
                {
                    Version = "v1",
                    Title = "MvcMovie API",
                    Description = "A simple example ASP.NET Core Web API",
                    TermsOfService = new Uri("https://example.com/terms"),
                    Contact = new OpenApiContact
                    {
                        Name = "阿波罗",
                        Email = string.Empty,
                        Url = new Uri("https://twitter.com/zhoujyer"),
                    },
                    License = new OpenApiLicense
                    {
                        Name = "Use under LICX",
                        Url = new Uri("https://example.com/license"),
                    }
                });
            });


           ......
       }

Swagger UI によって表示されるバージョン情報は次のとおりです。

 

3. 自動コード生成

1. NSwag は次の機能を提供します。
Swagger UI および Swagger ジェネレーターを使用する機能。
柔軟なコード生成機能。
NSwag を使用すると、既存の API を使用する必要がありません。つまり、Swagger を含むサードパーティ API を使用して、クライアント実装を生成できます。NSwag を使用すると、開発サイクルをスピードアップし、API の変更に簡単に適応できます。

2. NSwagミドルウェアのインストールと登録

ソリューション エクスプローラーでプロジェクトを右クリックし、[NuGet パッケージの管理]
検索ボックスに「NSwag.AspNetCore」
と入力します。 [参照] タブから「NSwag.AspNetCore」パッケージを選択し、[インストール] をクリックします。

Startup.ConfigureServices メソッドで、必要な Swagger サービスを登録します。

       public void ConfigureServices(IServiceCollection services)
        {
           
            // Register the Swagger services
            services.AddSwaggerDocument();

          ......
         }

Startup.Configure メソッドで、生成された Swagger 仕様と Swagger UI を提供するミドルウェアを有効にします。

       public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {

            // Register the Swagger generator and the Swagger UI middlewares
            app.UseOpenApi();
            app.UseSwaggerUi3();
           
            ......
         }

 3. NSwagStudio ツールをダウンロードしてインストールします

https://github.com/RicoSuter/NSwag/wiki/NSwagStudio

4. NSwagStudioを実行する

 「仕様 URL」に OpenAPI ドキュメントの URL を入力し、「ローカル コピーの作成」をクリックします。

右側のウィンドウで Typescript クライアントまたは CSharp クライアントを選択すると、Typescript または C# で使用されるクライアント コードが自動的に生成され、開発効率が向上します。

 

 

4. 参考資料

https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.1&tabs=visual-studio

https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?view=aspnetcore-3.1

おすすめ

転載: blog.csdn.net/zhujisoft/article/details/110391116