.NET Aspire のダッシュボードから Swagger UI を直接起動できるようにする方法を紹介します。
はじめに
.NET Aspire で API プロジェクトを開発している際、ダッシュボードから Swagger UI に簡単にアクセスしたいことがあります。デフォルトではルートパスが表示されますが、一工夫することで Swagger を直接起動できるようになります。
実装方法
方法 1: ルートパスでのリダイレクト設定
ルートパス(/)にアクセスした際に、自動的に Swagger UI にリダイレクトする方法です。API プロジェクトのProgram.csファイル内で以下のようにして Swagger にリダイレクトするようにします。
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
// ルートパスアクセス時にSwaggerにリダイレクト
app.MapGet("/", () => Results.Redirect("/swagger"));
}
メリット:
- コード上で明示的にリダイレクト処理が記述されている
方法 2: launchSettings.json での設定
プロジェクトのlaunchSettings.jsonファイルでデフォルトのパスを/swaggerに設定する方法です。
{
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
メリット:
- ダッシュボード上に表示される URL が最初から Swagger のパスになる
- 設定ファイルベースなので、環境ごとに異なる設定が可能
動作確認
どちらの方法を選択しても、Aspire ダッシュボードから以下の手順で Swagger UI にアクセスできます:
- Aspire アプリケーションを起動
- ダッシュボードで API プロジェクトのエンドポイントを確認
- エンドポイントリンクをクリック
- Swagger UI が表示される
おすすめの選択
個人的には**方法 1(リダイレクト設定)**をおすすめします。理由は以下の通りです:
- コード上で明示的に処理が記述されているため、意図が明確
- 他の開発者が見たときに、なぜこの設定があるのかが理解しやすい
- デバッグ時にブレークポイントを設定してリダイレクト処理を確認できる
まとめ
.NET Aspire のダッシュボードから直接 Swagger UI にアクセスする方法を 2 つ紹介しました。どちらの方法も簡単に実装でき、API 開発時の生産性向上に役立ちます。
プロジェクトの要件や開発チームの好みに応じて、適切な方法を選択してください。
この記事が皆様のコーディングライフの助けになれば幸いです。