Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

【Visual Studio】エンドポイントエクスプローラーを使ってWebAPIをテストする

こんにちは!オルターブースのはっしーです!
この記事は Infocom Advent Calendar 2023 の14日目の記事です。

qiita.com

先月 .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