Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Herschrijft aanvragen.
Configuratievoorbeeld
{
"$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"
}
}
Configuratie-eigenschappen
| Eigenschappen | Beschrijving | Standaard |
|---|---|---|
rewritesFile |
Pad naar het bestand met herschrijfdefinities | rewrites.json |
Opdrachtregelopties
Geen
Voorbeelden van herschrijven van bestanden
Hieronder volgen voorbeelden van herschrijfregels.
Alle aanvragen van HTTP naar HTTPS herschrijven
Herschrijf alle aanvragen van HTTP naar HTTPS. In deze context betekent alles alle aanvragen die zijn geconfigureerd met Dev Proxy of 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"
}
}
]
}
Een aanvraagheader instellen
Stel de Accept-Language header voor alle aanvragen in op https://api.contoso.com. Als de aanvraag al de header heeft, vervangt de invoegtoepassing de waarde ervan. Als de header ontbreekt, wordt deze door de invoegtoepassing toegevoegd. Omdat de regel geen out-URL opgeeft, wordt de aanvraag-URL niet gewijzigd door de invoegtoepassing.
{
"$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"
}
]
}
}
]
}
Aanvragen herschrijven naar een URL vanuit een omgevingsvariabele
Herschrijf aanvragen naar https://api.contoso.com de basis-URL die is opgeslagen in de API_BASE_URL omgevingsvariabele, waarbij de rest van het pad behouden blijft.
{
"$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"
}
}
]
}
Eigenschappen van mocks-bestanden
| Eigenschappen | Beschrijving | Vereist |
|---|---|---|
rewrites |
Matrix van herschrijfobjecten die de lijst met herschrijfregels definieert die de RewritePlugin toepast op de aanvragen die worden onderschept | ja |
Object herschrijven
Elke herschrijfregel heeft de volgende eigenschappen:
| Eigenschappen | Beschrijving | Vereist |
|---|---|---|
in |
Herschrijfpatroon zodat deze overeenkomt met de binnenkomende aanvraag. | ja |
out |
Patroon herschrijven om de aanvraag opnieuw te schrijven | ja |
Opmerkingen
Als de aanvraag die de RewritePlugin onderschept, niet overeenkomt met alle eigenschappen die in het patroon zijn gedefinieerd, past de invoegtoepassing de herschrijfregel niet toe op de aanvraag.
Patroon herschrijven
Elk herschrijfpatroon heeft de volgende eigenschappen:
| Eigenschappen | Beschrijving | Vereist | Standaardwaarde | Voorbeeldwaarde |
|---|---|---|---|---|
url |
In het patroon is de reguliere expressie die de invoegtoepassing van toepassing is op de URL. In het out-patroon moet u de URL waarnaar u de aanvraag wilt herschrijven. Als u deze weglaat in het out-patroon , verandert de invoegtoepassing de aanvraag-URL niet. | Ja in, nee in uit | ^http://(.*) |
|
headers |
Matrix van aanvraagheaders die moeten worden ingesteld voor de aanvraag. Alleen ondersteund in het out-patroon . | no |
Opmerkingen
Het out-patroon moet opgeven url, headersof beide.
Als u capture-groepen gebruikt in de reguliere expressie in de patronen , kunt u ernaar verwijzen in het out-patroon . Als u bijvoorbeeld wilt herschrijven http://example.com/foohttps://example.com/foo, kunt u de volgende herschrijfregel gebruiken:
{
"$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"
}
}
]
}
In de uitgaande URL kunt u verwijzen naar omgevingsvariabelen met behulp van de ${env:VAR_NAME} syntaxis. Dev Proxy voegt de waarde in van de omgevingsvariabele as-is, zodat de waarde ook kan verwijzen naar het vastleggen van groepen uit het patroon . Dev Proxy lost omgevingsvariabelen alleen op voor aanvragen die overeenkomen met het patroon en breidt omgevingsvariabelen niet uit in het patroon . Als een omgevingsvariabele waarnaar wordt verwezen niet is ingesteld, registreert Dev Proxy een fout en slaat de herschrijfregel over.
Header van het verzoek
Elke aanvraagheader heeft de volgende eigenschappen:
| Eigenschappen | Beschrijving | Vereist |
|---|---|---|
name |
Naam van de aanvraagheader | ja |
value |
Waarde die moet worden ingesteld voor de aanvraagheader | ja |
Opmerkingen
De invoegtoepassing komt overeen met headernamen hoofdlettergevoelig. Als de aanvraag al de header heeft, vervangt de invoegtoepassing de waarde ervan. Als de header ontbreekt, wordt deze door de invoegtoepassing toegevoegd.
De invoegtoepassing stelt alleen headers in voor aanvragen waarvan de URL overeenkomt met het URL-patroon . De invoegtoepassing evalueert de overeenkomst voordat de URL opnieuw wordt geschreven van dezelfde regel, dus wanneer een regel zowel de URL als headers herschrijft, zijn de headers van toepassing op dezelfde aanvragen als het herschrijven van de URL.
U kunt verwijzen naar omgevingsvariabelen in headerwaarden met behulp van de ${env:VAR_NAME} syntaxis. Dev Proxy lost deze op dezelfde manier op als in de out-URL en slaat de herschrijfregel over als er geen omgevingsvariabele waarnaar wordt verwezen, is ingesteld. Headerwaarden bieden geen ondersteuning voor capture-groepen van het in-patroon .