ひでぼ~blog

C#ときどきゲーム

VS2022のhttpファイルで環境毎のパラメータを用意する

実行環境

  • VS2022 17.8.3
  • .NET 8

httpファイルを用意する

適当なhttpファイルを用意します。HostAddressとParameterは後述の別ファイルで定義します。

GET {{HostAddress}}?q={{Parameter}}

httpenv.jsonを用意する

httpenv.jsonを作成してhttpファイルと同じ階層か上位の階層に置きます。 develop, staging, productionの3つの環境を想定してそれぞれのHostAddressとParameterを設定しました。

{
  "develop": {
    "HostAddress": "https://example.com",
    "Parameter": "d"
  },
  "staging": {
    "HostAddress": "https://example.com",
    "Parameter": "s"
  },
  "production": {
    "HostAddress": "https://example.com",
    "Parameter": "p"
  }
}

httpファイルを開くと、エディターの左上で環境が選択できるようになります。

httpenv.json.userを用意する

ソース管理したくないような個人で使うパラメータはhttpenv.json.userを使います。httpenv.jsonと同じ階層に配置します。

{
  "develop": {
    "HostAddress": "https://example.com",
    "Parameter": "user-d"
  },
  "staging": {
    "HostAddress": "https://example.com",
    "Parameter": "user-s"
  },
  "production": {
    "HostAddress": "https://example.com",
    "Parameter": "user-p"
  }
}

パラメータの優先順位

  1. httpファイル内で宣言された変数
  2. httpenv.json.userファイルで宣言された変数
  3. httpenv.jsonファイルで宣言された変数

試しにhttpenv.json.userとhttpenv.jsonがある状態でリクエストを投げてみました。

httpenv.json.userの値が使われていました。

参考

devblogs.microsoft.com