Skriv omPlugin

Skriver om begäranden.

Skärmbild av en kommandotolk där Dev Proxy skriver om en inkommande API-begäran.

Konfigurationsexempel

{
  "$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"
  }
}

Konfigurationsegenskaper

Fastighet beskrivning Standard
rewritesFile Sökväg till filen som innehåller omskrivningsdefinitioner rewrites.json

Kommandoradsalternativ

Ingen

Skriva om filexempel

Här följer exempel på omskrivningsregler.

Skriv om alla begäranden från HTTP till HTTPS

Skriv om alla begäranden från HTTP till HTTPS. I det här sammanhanget innebär alla begäranden som konfigurerats med Dev Proxy eller 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"
      }
    }
  ]
}

Ange ett begärandehuvud

Accept-Language Ange rubriken för alla begäranden till https://api.contoso.com. Om begäran redan har huvudet ersätter plugin-programmet dess värde. Om rubriken saknas lägger plugin-programmet till det. Eftersom regeln inte anger någon utgående URL ändrar plugin-programmet inte begärande-URL:en.

{
  "$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"
          }
        ]
      }
    }
  ]
}

Skriva om begäranden till en URL från en miljövariabel

Skriv om begäranden till https://api.contoso.com den bas-URL som lagras i API_BASE_URL miljövariabeln, vilket bevarar resten av sökvägen.

{
  "$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"
      }
    }
  ]
}

Simulerar filegenskaper

Fastighet beskrivning Obligatoriskt
rewrites Matris med omskrivningsobjekt som definierar listan över omskrivningsregler som omskrivningspluggen gäller för de begäranden som den fångar upp ja

Skriv om objekt

Varje omskrivningsregel har följande egenskaper:

Fastighet beskrivning Obligatoriskt
in Skriv om mönstret för att matcha den inkommande begäran. ja
out Skriv om mönstret för att skriva om begäran ja

Kommentarer

Om begäran som RewritePlugin fångar upp matchar inte alla egenskaper som definierats i in-mönstret tillämpar plugin-programmet inte omskrivningsregeln på begäran.

Skriv om mönster

Varje omskrivningsmönster har följande egenskaper:

Fastighet beskrivning Obligatoriskt Standardvärde Exempelvärde
url I in-mönstret , reguljärt uttryck som plugin-programmet gäller för URL:en. I utmönstret skriver du om den url som begäran ska skrivas om till. Om du utelämnar det i utmönstret ändrar plugin-programmet inte url:en för begäran. Ja in, nej in ut ^http://(.*)
headers Matris med begärandehuvuden som ska anges för begäran. Stöds endast i utmönstret . no

Kommentarer

Utmönstret måste ange url, headerseller båda.

Om du använder avbildningsgrupper i det reguljära uttrycket i in-mönstren kan du referera till dem i ut-mönstret. Om du till exempel vill skriva om http://example.com/foo till https://example.com/fookan du använda följande omskrivningsregel:

{
  "$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"
      }
    }
  ]
}

I ut-URL:en kan du referera till miljövariabler med hjälp av syntaxen.${env:VAR_NAME} Dev Proxy infogar värdet för miljövariabeln as-is, så att värdet även kan referera till insamlingsgrupper från in-mönstret . Dev Proxy löser endast miljövariabler för begäranden som matchar in-mönstret och expanderar inte miljövariabler i in-mönstret . Om en refererad miljövariabel inte har angetts loggar Dev Proxy ett fel och hoppar över omskrivningsregeln.

Förfrågningshuvudrad

Varje begärandehuvud har följande egenskaper:

Fastighet beskrivning Obligatoriskt
name Namnet på begärandehuvudet ja
value Värde som ska anges för begärandehuvudet ja

Kommentarer

Plugin-programmet matchar skiftlägeskänsliga huvudnamn. Om begäran redan har huvudet ersätter plugin-programmet dess värde. Om rubriken saknas lägger plugin-programmet till det.

Plugin-programmet anger endast rubriker för begäranden vars URL matchar url-mönstret . Plugin-programmet utvärderar matchningen innan den tillämpar URL-omskrivningen av samma regel, så när en regel skriver om både URL:en och rubrikerna gäller rubrikerna för samma begäranden som URL-omskrivningen.

Du kan referera till miljövariabler i rubrikvärden med hjälp av syntaxen ${env:VAR_NAME} . Dev Proxy löser dem på samma sätt som i ut-URL :en och hoppar över omskrivningsregeln om en refererad miljövariabel inte har angetts. Rubrikvärden stöder inte insamlingsgrupper från in-mönstret .