こんにちは!オルターブースのはっしーです! この記事は Infocom Advent Calendar 2023 の14日目の記事です。
先月 .NET Conf 2023が開催されました。 イベントの中でVisual Studioの「エンドポイント エクスプローラー」という新しい機能が紹介されていたので使ってみたいと思います。 www.dotnetconf.net
エンドポイントエクスプローラーはHTTP 要求をテストするためのVisual Studio 2022 のツール ウィンドウです。
ASP.NET Core Web APIアプリを作成する
事前準備
事前準備として以下のコンポーネントが必要です。
- Visual Studio 2022 バージョン17.6 以上
- ASP.NET および Web 開発ワークロード
プロジェクトの作成
- Visual Studioを開きます。
「新しいプロジェクトの作成」を選択します。
ASP.NET Core Web APIテンプレートを選択します。
任意のプロジェクト名と保存先を設定します。
今回はMinimal APIを使用するので 「コントローラーを使用する」のチェックを外し、作成します。
プロジェクトが作成されます。Ctrl + F5 キーを押して、デバッガーなしで実行します。 ※Visual Studioにダイアログが表示されることがあります。 IIS Express SSL 証明書、開発証明書を信頼する場合はそれぞれ「はい」を選択してください。
Swaggerの画面が表示され、HTTP GET エンドポイントが1つあることが確認できます。 確認ができたら、デバックを停止します。
エンドポイントエクスプローラーを使ってみる
エンドポイントエクスプローラーウィンドウを表示する
Visual Studioで「表示」>「その他のウィンドウ」>「エンドポイントエクスプローラー」の順に選択します。
エンドポイントエクスプローラータブが表示され、HTTP GET エンドポイントが1つあることが確認できます。
リクエストを送信する
エンドポイントを右クリックして、「要求の生成」を選択します。
SampleApiApp.http
という新しいファイルがプロジェクト フォルダー内に作成されます。SampleApiApp.http
の内容についてはこちらを参考にしてください。
Visual Studio 2022 で .http ファイルを使う | Microsoft Learn
「要求の送信」を選択し、リクエストを送信します。
以下のようにレスポンスを確認することができます。
ちなみにアプリを起動していない状態だとエラーになります
ユーザーシークレットを設定する
- APIによっては、リクエストヘッダーにAPIKeyなどを含めたい場合があります。
- そのようなときは、プロジェクトルートに以下の次のファイルを作成します。 http-client.env.json
{ "dev": { "apiKeyDev": { "provider": "AspnetUserSecrets", "secretName": "config:apiKey" } } }
次に、ソリューションエクスプローラーでプロジェクトを右クリック、「ユーザーシークレットの管理」を選択します。
secrets.json
ファイルが開かれるので、次のように編集します。 secrets.json
{ "config": { "apiKey": "aaaa" } }
- リクエストにヘッダーを追加します。 SampleApiApp.http
GET {{SampleApiApp_HostAddress}}/weatherforecast/ ## 追加 X-ApiKey: {{apiKeyDev}} ##
一度SampleApiApp.httpファイルを閉じ、再度開きます。 右上のプルダウンメニューで環境を選ぶことができます。「dev」を選択します。
再度リクエストを送信します。 リクエストヘッダーにAPIKeyが設定できていることが確認できます。
まとめ
以下の点が良いと思いました。
- 使い慣れたVisual Studioで作業できる点
- ツールを移動することなく作業できる点
- テスト用のリクエストをプロジェクトコード内の.httpファイルで管理できる点
積極的に使っていきたいと思います。 最後まで読んでいただきありがとうございました。
参考資料
Visual Studio 2022 で .http ファイルを使う | Microsoft Learn チュートリアル: ASP.NET Core を使って最小 API を作成する | Microsoft Learn ASP.NET Core での開発におけるアプリ シークレットの安全な保存 | Microsoft Learn Visual Studio Updates for .NET Devs | .NET Conf 2023 - YouTube
サービス一覧 www.alterbooth.com cloudpointer.tech www.alterbooth.com