Freigeben über


URL neu schreiben

GILT FÜR: Alle API Management-Ebenen

Die rewrite-uri Richtlinie wandelt eine Anfrage-URL von ihrer öffentlichen Form in die vom Webservice erwartete Form um.

Verwenden Sie diese Richtlinie, wenn Sie eine menschenfreundliche oder browserfreundliche URL in das vom Webdienst erwartete URL-Format umwandeln müssen. Wenden Sie diese Richtlinie nur an, wenn Sie ein alternatives URL-Format offenlegen, wie z. B. saubere URLs, RESTful-URLs, benutzerfreundliche URLs oder SEO-freundliche URLs, die rein strukturell sind und keine Abfragezeichenkette enthalten, sondern nur den Pfad der Ressource (nach dem Schema und der Autorität). Oft machen Sie diese Änderung aus ästhetischen, benutzerfreundlichen Gründen oder zu Suchmaschinenoptimierungszwecken (SEO).

Hinweis

Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.

Richtlinienanweisung

<rewrite-uri template="uri template" copy-unmatched-params="true | false" />

Attribute

Name BESCHREIBUNG Erforderlich Standard
Vorlage Die eigentliche Webdienst-URL mit allen Abfrageparametern. Richtlinienausdrücke sind zulässig. Wenn Ausdrücke verwendet werden, muss der gesamte Wert ein Ausdruck sein. Ja
copy-unmatched-params Spezifiziert, ob Abfrageparameter in der eingehenden Anfrage, die in der ursprünglichen URL-Vorlage nicht vorhanden sind, zur von der Umschreibvorlage definierten URL hinzugefügt werden. Richtlinienausdrücke sind zulässig. Nein true

Verwendung

Hinweise zur Verwendung

Man kann nur durch die Nutzung der Richtlinie Parameter der Abfragestring-Parameter hinzufügen. Du kannst keine zusätzlichen Template-Pfadparameter in der neu geschriebenen URL hinzufügen.

Examples

Beispiel 1: Grundlegende URL-Umschreibung

Im folgenden Beispiel wird die öffentliche URL umgeschrieben, um dem Backend-Service-URL-Format zu entsprechen, und Abfrageparameter werden basierend auf anderer Logik einbezogen.

  • Öffentliche URL: http://api.example.com/storenumber/ordernumber

  • Anforderungs-URL: http://api.example.com/v2/US/hardware/storenumber/ordernumber?City&State

<policies>
    <inbound>
        <base />
        <rewrite-uri template="/v2/US/hardware/{storenumber}/{ordernumber}?City=city&State=state" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

Beispiel 2: Kopiere nicht abgestimmte Parameter

Im folgenden Beispiel wird die öffentliche URL so umgeschrieben, dass sie mit dem Backend-Service-URL-Format übereinstimmt, und die Richtlinie kopiert alle nicht übereinstimmenden Abfrageparameter auf die neue URL.

<!-- Assuming incoming request is /get?a=b&c=d and operation template is set to /get?a={b} -->
<policies>
    <inbound>
        <base />
        <rewrite-uri template="/put" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>
<!-- Resulting URL will be /put?c=d -->

Beispiel 3: Kopiere nicht unübereinstimmte Parameter

Im folgenden Beispiel wird die öffentliche URL umgeschrieben, um mit dem Backend-Service-URL-Format übereinzustimmen, und die Richtlinie lässt alle nicht abgestimmten Abfrageparameter weg.

<!-- Assuming incoming request is /get?a=b&c=d and operation template is set to /get?a={b} -->
<policies>
    <inbound>
        <base />
        <rewrite-uri template="/put" copy-unmatched-params="false" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>
<!-- Resulting URL will be /put -->

Beispiel 4: Verwenden Sie den Policy Expression in der Vorlage

Im folgenden Beispiel verwendet die Richtlinie Ausdrücke in der Vorlage, um die Anfrage an das Backend zu erstellen.

<policies>
    <inbound>
        <base />
        <set-variable name="apiVersion" value="/v3" />
        <rewrite-uri template="@("/api" + context.Variables["apiVersion"] + context.Request.Url.Path)" />
    </inbound>
</policies>

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: