こんにちは、MLBお兄さんこと松村です。
MLB では早くもオールスターゲームに出場する選手を決める投票が始まっています。
みなさんもお気に入りの選手や今季ブレイクした選手に投票してみてはいかがでしょうか。
さて、私は先日こちらのイベントで登壇しました。
dotnet-communities.connpass.com
そのときの資料は既に公開しているので、ぜひご覧ください。
今回の登壇では ASP.NET Core Web API と Visual Studio 2022 についての、こちらの記事を元ネタにしましたので、取り上げた内容を解説したいと思います。
また、これらの Visual Studio の機能の内容は Build のセッションでも言及されていました。あわせてご覧ください。
Minimal API でプロジェクト作成
ASP.NET Core Web API のプロジェクトを作成する際、 ApiController か Minimal API のどちらを用いるか選択します。
どちらを選ぶべきかは状況によりけりで一概には言えません。
今回は Minimal API を使用するため、「コントローラーを使用する」のチェックは外します。
また OpenAPI (Swagger) を使用するため、「OpenAPI サポートを有効にする」のチェックを入れます。
Minimal API プロジェクトを作成すると、OpenAPI の設定も含まれており、Swagger UI が使用可能です。
var builder = WebApplication.CreateBuilder(args); builder.Services.AddSwaggerGen(); var app = builder.Build(); if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); }
また、サンプルの天気予報のエンドポイントも作られます。
app.MapGet("/weatherforecast", () => { var forecast = Enumerable.Range(1, 5).Select(index => new WeatherForecast ( DateOnly.FromDateTime(DateTime.Now.AddDays(index)), Random.Shared.Next(-20, 55), summaries[Random.Shared.Next(summaries.Length)] )) .ToArray(); return forecast; }) .WithName("GetWeatherForecast") .WithOpenApi();
スキャフォールドで API 作成
新しい機能ではないですが、Visual Studio ではモデルからスキャフォールドで Web API を作成することができます。
エンドポイントのリソースとなるモデルを作成したうえで、Visual Studio からスキャフォールドを行います。
マイグレーションファイルの作成
基本的には dotnet ef
コマンドを使う派ですが、Visual Studio の GUI でもマイグレーションファイルの作成や適用ができるようになっていました。直感的で分かりやすいです。
Web API エンドポイントエクスプローラー
Visual Studio ではプレビュー機能のオン/オフを切り替えることができます。
そのなかに「Web API エンドポイントエクスプローラー」という項目があるので、それをオンにすると Web API エンドポイントエクスプローラーを利用することができるようになります。
このエクスプローラーには、表示中のプロジェクトに定義されている Web API エンドポイントが一覧表示されます。
一覧に表示された項目を右クリックすると、そのエンドポイントが定義されているファイルにジャンプすることができます。
エンドポイントの数が多くなると、このような一覧性も大事になってきますね。
REST API クライアント
上記のように、Web API エンドポイントエクスプローラーに表示される項目の右クリックメニューにある「要求の生成」を押すと、エディターに .http
拡張子のファイルが表示されます。(.rest
拡張子でも同様)
これは Visual Studio における REST クライアントのファイルです。
@VS2022WebApiDevelopment_HostAddress = https://localhost:7061 GET {{VS2022WebApiDevelopment_HostAddress}}/weatherforecast
.http
ファイルには上記のように、リクエスト先のエンドポイントと HTTP メソッドが記載されます。
この状態で ▶ ボタンを押すと、そのエンドポイントに HTTP リクエストを送信し、 API をテストすることができます。
ちなみに Visual Studio Code でも、REST クライアントの拡張機能をインストールすることで同様の操作を行えます。
この .http
ファイルをリポジトリに含めておけば、Postman コレクションを作成せずとも、メンバー間で API のテスト内容を共有することができます。
Visual Studio の開発トンネル
例えば LINE ボット用の Web API エンドポイントを作る際、実際の LINE アプリからローカルのエンドポイントに通信し、デバッグを行いたい場合があります。
おそらく多くの方は ngrok を使うかと思いますが、Visual Studio なら標準機能でローカルへのポートトンネリングを行うことができます。
開発トンネルはアカウントに紐づくようになっており、一時的または永続的な URL を発行することができます。
また、URL にはアクセス制御を設定することができ、自分のみ、自組織内(組織アカウント限定)、誰でもOK、という種類に分かれます。
知らない間に Visual Studio 2022 で Web API 開発がやりやすくなったな~という印象です。
こういう新機能をどんどん使って、より効率的な開発をやりたいですね。