演習 - Swashbuckle を使用して OpenAPI ドキュメントを作成する
この演習では、ASP.NET Core Web API アプリケーションに Swagger と Swagger UI を追加します。 Swagger ツールは、Web API を記述する OpenAPI ドキュメントの作成に役立ちます。
メモ
この演習を完了するには、ソース コードをローカル コンピューターにダウンロードします。 ファイルをダウンロードしたら、解凍する必要があります。
- [生ファイルのダウンロード] ボタンを選択します。
exercise.zipファイルを解凍します。
Swagger ツールを追加する
Visual Studio を開き、ASP.NET Core Web API アプリを見つけます。
ソリューション エクスプローラーで、プロジェクトを右クリックし、[NuGet パッケージの管理] メニューを選択します。
NuGet パッケージ マネージャーで、
Swashbuckle.AspNetCoreを検索します。 パッケージを選択して、インストールします。
これで NuGet パッケージがインストールされました。 [NuGet パッケージ マネージャー] タブを閉じます。
OpenAPI ドキュメントを生成するように Swashbuckle を構成する
Startup.csファイルを開きます。
namespace InventoryManagement.ApiAppの行のすぐ上に次のディレクティブを追加します。/* === using directive BEGIN === */ using Microsoft.OpenApi.Models; /* === using directive END === */ConfigureServices(IServiceCollection)メソッド内のすべてのコードを、次のコードに置き換えます。services.AddControllers(); /* === SwaggerGen BEGIN === */ services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "Inventory Management", Version = "v1" }); }); /* === SwaggerGen END === */Configure(IApplicationBuilder, IWebHostEnvironment)メソッド内で、if (env.IsDevelopment())条件ステートメントを見つけて、そのステートメントの上のすべてを次のコードに置き換えます。/* === 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 === */メモ
Swagger エンドポイントを有効にする場合、開発環境に限ることは非常に重要です。 そうしないと、API が一般に公開される可能性があります。
ASP.NET Core Web API アプリへの OpenAPI ドキュメント機能のアクティブ化が完了しました。
Startup.csファイルを保存します。 変更箇所は次のスクリーンショットのようになります。
OpenAPI ドキュメント ファイルを生成する
Visual Studio の上部中央にあるデバッグ ボタンを選択します。
自動的に Web ブラウザーが開き、Swagger UI ページが表示されます。
404 エラーページが表示される場合があります。 この場合は、ブラウザーのアドレス バーに
https://localhost:<port_number>/swaggerの URL を入力します。 たとえば次のスクリーンショットでは、URL はhttps://localhost:44371/swaggerです。
リンクを選択して、OpenAPI ドキュメント ページを開きます。
OpenAPI ドキュメントは、その場でレンダリングされます。
これで、ASP.NET Core Web API アプリで OpenAPI ドキュメントを生成する準備ができました。