要求を書き換える。
構成の例
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
"plugins": [
{
"name": "RewritePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "rewritePlugin"
}
],
"rewritePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.schema.json",
"rewritesFile": "rewrites.json"
}
}
構成プロパティ
| プロパティ | 説明 | 既定値 |
|---|---|---|
rewritesFile |
書き換え定義を含むファイルへのパス | rewrites.json |
コマンドライン オプション
なし
ファイルの書き換えの例
書き換えルールの例を次に示します。
HTTP から HTTPS へのすべての要求を書き換える
HTTP から HTTPS へのすべての要求を書き換える。 このコンテキストでは、 all は、開発プロキシまたは RewritePlugin で構成されたすべての要求を意味します。
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^http://(.*)"
},
"out": {
"url": "https://$1"
}
}
]
}
要求ヘッダーを設定する
すべての要求の Accept-Language ヘッダーを https://api.contoso.com に設定します。 要求に既にヘッダーがある場合、プラグインはその値を置き換えます。 ヘッダーが見つからない場合は、プラグインによって追加されます。 規則では out URL が指定されていないため、プラグインは要求 URL を変更しません。
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^https://api\\.contoso\\.com/"
},
"out": {
"headers": [
{
"name": "Accept-Language",
"value": "nl-NL"
}
]
}
}
]
}
環境変数から URL への要求を書き換える
API_BASE_URL環境変数に格納されているベース URL にhttps://api.contoso.comする要求を書き換え、残りのパスを保持します。
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^https://api\\.contoso\\.com/(.*)"
},
"out": {
"url": "${env:API_BASE_URL}/$1"
}
}
]
}
モック ファイルのプロパティ
| プロパティ | 説明 | 必須 |
|---|---|---|
rewrites |
rewritePlugin がインターセプトする要求に適用される書き換え規則の一覧を定義するrewrite オブジェクトの配列 | はい |
オブジェクトの書き換え
各書き換えルールには、次のプロパティがあります。
| プロパティ | 説明 | 必須 |
|---|---|---|
in |
パターンの書き換え 受信要求に一致するようにします。 | はい |
out |
書き換えパターン 要求を書き換える | はい |
解説
RewritePlugin がインターセプトする要求が、 in パターンで定義されているすべてのプロパティと一致しない場合、プラグインは書き換えルールを要求に適用しません。
書き換えパターン
各書き換えパターンには、次のプロパティがあります。
| プロパティ | 説明 | 必須 | 規定値 | 値の例 |
|---|---|---|---|---|
url |
in パターン では 、プラグインが URL に適用される正規表現。 出力パターンでは、要求を書き換える URL。 out パターンで省略した場合、プラグインは要求 URL を変更しません。 | は い in、no in out | ^http://(.*) |
|
headers |
要求に設定する 要求ヘッダー の配列。 出力パターンでのみサポートされます。 | no |
解説
出力パターンでは、url、headers、またはその両方を指定する必要があります。
in パターンの正規表現でキャプチャ グループを使用する場合は、out パターンでそれらを参照できます。 たとえば、 http://example.com/foo を https://example.com/fooに書き換える場合は、次の書き換え規則を使用できます。
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rewriteplugin.rewritesfile.schema.json",
"rewrites": [
{
"in": {
"url": "^http://(.*)"
},
"out": {
"url": "https://$1"
}
}
]
}
出力 URL では、${env:VAR_NAME}構文を使用して環境変数を参照できます。 Dev Proxy は環境変数の値を as-is挿入するため、値は in パターンからのキャプチャ グループを参照することもできます。 開発プロキシは、in パターンに一致し、in パターン 内の 環境変数を展開しない要求に対してのみ 環境変数を解決 します。 参照先の環境変数が設定されていない場合、Dev Proxy はエラーをログに記録し、書き換えルールをスキップします。
リクエストヘッダー
各要求ヘッダーには、次のプロパティがあります。
| プロパティ | 説明 | 必須 |
|---|---|---|
name |
要求ヘッダーの名前 | はい |
value |
要求ヘッダーに設定する値 | はい |
解説
プラグインは、大文字と小文字を区別せずにヘッダー名と一致します。 要求に既にヘッダーがある場合、プラグインはその値を置き換えます。 ヘッダーが見つからない場合は、プラグインによって追加されます。
プラグインは、URL が in URL パターンと一致する要求にのみヘッダーを設定します。 プラグインは、同じルールの URL 書き換えを適用する前に一致を評価するため、ルールが URL とヘッダーの両方を書き換えると、ヘッダーは URL 書き換えと同じ要求に適用されます。
${env:VAR_NAME}構文を使用して、ヘッダー値内の環境変数を参照できます。 Dev Proxy は out URL と 同じ方法で解決し、参照先の環境変数が設定されていない場合は書き換えルールをスキップします。 ヘッダー値は、 in パターンからのキャプチャ グループをサポートしていません。
Dev Proxy