ASP.NET Core Web APIのOpenAPI構築
Visual Studioを使用して、ASP.NET Core Web APIをOpenAPI(Swagger)仕様に基づいて構築する手順。意外と見つけられなかったので手順を備忘録で置いときます。もう少しいい手順があるかも。
1. プロジェクトの作成
Visual Studioを起動し、「新しいプロジェクトの作成」を選択します。テンプレートから「ASP.NET Core Web API」を選び、プロジェクトの基本設定を行います。
2. 新しいAPIの追加:
Controllerに追加したいAPIのクラスを追加します。
Solution ExplorerからControllerフォルダを右クリックし、コントローラーを選択
APIを選択し、「APIコントローラー -空」を選択。その後、「REST APIの名前」になるクラス名を記述
以下は、Hello Worldと表示するAPIの追加例
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace AnalyzeAccessLog.Controllers;
[Route("api/[controller]/[action]")]
[ApiController]
public class AnalyzeController : ControllerBase
{
private readonly ILogger<AnalyzeController> _logger;
/// <summary>
/// コンストラクタ
/// </summary>
/// <param name="logger"></param>
public AnalyzeController(ILogger<AnalyzeController> logger)
{
_logger = logger;
}
/// <summary>
/// Hello Worldと表示
/// </summary>
/// <returns></returns>
[HttpGet(Name = "HelloWorld")]
public string HelloWorld()
{
return "Hello World";
}
}
これを実行するとswaggerが立ち上がり、Hello Worldが帰ってくる。クラス名/関数名がそのままAPIになる。
3. ドキュメントの設定:
Solution Explorerでプロパティを右クリックし「ビルド」-「出力」のドキュメントファイルにチェックを入れる。
Program.cs の
builder.Services.AddSwaggerGen();
を以下のように書き換える。
// Add documents from source code
var xmlPath = System.Reflection.Assembly.GetEntryAssembly().Location.Replace("dll", "xml");
builder.Services.AddSwaggerGen(options => options.IncludeXmlComments(xmlPath));
これを実行するとこんな感じでC#の関数コメントがswaggerに表示される。