Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přepíše požadavky.
Příklad konfigurace
{
"$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"
}
}
Vlastnosti konfigurace
| Vlastnost | Popis | Výchozí |
|---|---|---|
rewritesFile |
Cesta k souboru obsahujícímu definice přepsání | rewrites.json |
Možnosti příkazového řádku
Nic
Příklady přepsání souborů
Následuje příklad přepisování pravidel.
Přepsání všech požadavků z HTTP na HTTPS
Přepište všechny požadavky z HTTP na HTTPS. V tomto kontextu všechny požadavky nakonfigurované pomocí dev proxy serveru nebo 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"
}
}
]
}
Nastavení hlavičky požadavku
Nastavte hlavičku Accept-Language u všech požadavků na https://api.contoso.com. Pokud již požadavek obsahuje hlavičku, modul plug-in nahradí jeho hodnotu. Pokud záhlaví chybí, modul plug-in ho přidá. Vzhledem k tomu, že pravidlo nezadá výstupní adresu URL, modul plug-in nezmění adresu URL požadavku.
{
"$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"
}
]
}
}
]
}
Přepsání požadavků na adresu URL z proměnné prostředí
Přepište požadavky na https://api.contoso.com základní adresu URL uloženou API_BASE_URL v proměnné prostředí a zachováte zbytek cesty.
{
"$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"
}
}
]
}
Napodobení vlastností souboru
| Vlastnost | Popis | Povinní účastníci |
|---|---|---|
rewrites |
Pole přepsat objekty, které definují seznam pravidel přepsání, která rewritePlugin platí pro požadavky, které zachytí | ano |
Přepsání objektu
Každé pravidlo přepsání má následující vlastnosti:
| Vlastnost | Popis | Povinní účastníci |
|---|---|---|
in |
Přepište vzor tak, aby odpovídal příchozímu požadavku. | ano |
out |
Přepsání vzoru pro přepsání požadavku | ano |
Poznámky
Pokud požadavek, který rewritePlugin zachytí, neodpovídá všem vlastnostem definovaným v vzoru, modul plug-in na požadavek nepoužije pravidlo přepsání.
Přepsat vzor
Každý vzor přepsání má následující vlastnosti:
| Vlastnost | Popis | Povinní účastníci | Výchozí hodnota | Ukázková hodnota |
|---|---|---|---|---|
url |
V vzoru regulární výraz, který modul plug-in použije na adresu URL. V out vzoru adresa URL pro přepsání požadavku na. Pokud ho vynecháte ve vzoru out , modul plug-in nezmění adresu URL požadavku. | Ano in, ne ven | ^http://(.*) |
|
headers |
Pole hlaviček požadavků , které se mají nastavit v požadavku. Podporováno pouze ve vzoru out . | no |
Poznámky
Výstupní vzor musí určovat url, headersnebo obojí.
Pokud používáte skupiny zachycení v regulárním výrazu ve vzorech, můžete je odkazovat ve vzorci ven. Pokud například chcete přepisovat http://example.com/foohttps://example.com/foo, můžete použít následující pravidlo přepsání:
{
"$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"
}
}
]
}
V adrese URL out můžete odkazovat na proměnné prostředí pomocí ${env:VAR_NAME} syntaxe. Dev Proxy vloží hodnotu proměnné prostředí as-is, takže hodnota může odkazovat také na skupiny zachycení ze vzoru. Dev Proxy překládá proměnné prostředí pouze pro požadavky, které odpovídají vzoru, a nerozbaluje proměnné prostředí ve vzoru. Pokud odkazovaná proměnná prostředí není nastavená, dev proxy zaznamená chybu a přeskočí pravidlo přepsání.
Hlavička požadavku
Každá hlavička požadavku má následující vlastnosti:
| Vlastnost | Popis | Povinní účastníci |
|---|---|---|
name |
Název hlavičky požadavku | ano |
value |
Hodnota nastavená pro hlavičku požadavku | ano |
Poznámky
Modul plug-in odpovídá názvům hlaviček bez rozlišování velkých a malých písmen. Pokud již požadavek obsahuje hlavičku, modul plug-in nahradí jeho hodnotu. Pokud záhlaví chybí, modul plug-in ho přidá.
Modul plug-in nastavuje hlavičky pouze u požadavků, jejichž adresa URL odpovídá vzoru adresy URL. Modul plug-in vyhodnotí shodu předtím, než použije přepsání adresy URL stejného pravidla, takže když pravidlo přepíše adresu URL i hlavičky, budou hlavičky platit pro stejné požadavky jako přepsání adresy URL.
Proměnné prostředí můžete odkazovat v hodnotách hlaviček pomocí ${env:VAR_NAME} syntaxe. Dev Proxy je přeloží stejným způsobem jako v adrese URL pro out a přeskočí pravidlo přepsání, pokud není nastavená odkazovaná proměnná prostředí. Hodnoty hlaviček nepodporují skupiny zachycení ze vzoru.