.NET 9のWeb APIテンプレートにSwagger UIを追加する②

2025/01/13に公開

https://zenn.dev/tomokusaba/articles/9fb0cd96a199b7
その1はこちらから。

その1ではUI部分に従来のSwashbackleを使った方法を例示しました。
この方法ですと、慣れ親しんだUIで操作できて素晴らしい

一方で、より簡単にUIを提供する方法があります。
従来のSwashbackleとMicrosoft.AspNetCore.OpenApiではドキュメントを提供するエンドポイントが異なっているためその1の方法ではSwashbackle側にエンドポイントを明示的に渡してあげる必要がありました。
今回紹介するScalarではその必要がないのでよりコード量が少なくなります。

実装方法

前回と同じくMinimal APIのテンプレートからスタート

Nuget

Scalar.AspNetCoreパッケージをNugetします。

コード

変更部分のみコメントで明示

Program.cs
using Scalar.AspNetCore; // 追加

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
builder.Services.AddOpenApi();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.MapOpenApi();
    app.MapScalarApiReference(); // 追加
}

表示確認

https://localhost:<port>/scalar/v1 にアクセスして確認します

Swashbackleと同様にエンドポイントにアクセスした結果を確認することができます。

Discussion