Přepsat adresu URL

PLATÍ PRO: Všechny úrovně služby API Management

Politika rewrite-uri převádí URL požadavku z veřejného formuláře na požadovaný formulář webovou službou.

Použijte tuto politiku, když potřebujete převést uživatelsky přívětivou nebo prohlížečově přívětivou URL do formátu URL požadovaného webovou službou. Tuto politiku aplikujte pouze při zpřístupnění alternativního formátu URL, jako jsou čisté URL, RESTful URL, uživatelsky přívětivé URL nebo SEO-přátelské URL, které jsou čistě strukturální a neobsahují dotazovací řetězec, ale pouze cestu zdroje (po schématu a autoritě). Tuto změnu často provádíte kvůli vzhledu, použitelnosti nebo optimalizaci pro vyhledávače (SEO).

Poznámka:

Nastavte prvky zásad a podřízené prvky v pořadí uvedeném v prohlášení o zásadách. Přečtěte si další informace o tom, jak nastavit nebo upravit zásady služby API Management.

Prohlášení o zásadách

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

Atributy

Jméno Popis Požaduje se Výchozí
šablona Skutečná adresa URL webové služby s libovolnými parametry řetězce dotazu. Výrazy zásad jsou povolené. Při použití výrazů musí být celá hodnota výrazem. Ano
copy-unmatched-params Specifikuje, zda jsou parametry dotazu v příchozím požadavku, které nejsou přítomny v původní šabloně URL, přidány k URL definované šablonou přepisu. Výrazy zásad jsou povolené. Ne true

Využití

Poznámky k využití

Parametry dotazovacích řetězců můžete přidávat pouze pomocí této politiky. Do přepsané URL nemůžete přidat další parametry cesty šablony.

Examples

Příklad 1: Základní přepis URL

V následujícím příkladu je veřejná URL přepsána tak, aby odpovídala formátu backendové služby a parametry dotazu jsou zahrnuty na základě jiné logiky.

  • Veřejná adresa URL – http://api.example.com/storenumber/ordernumber

  • Adresa URL požadavku – 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>

Příklad 2: Zkopírovat neshodné parametry

V následujícím příkladu je veřejná URL přepsána tak, aby odpovídala formátu backendové služby URL, a politika zkopíruje všechny nesouvisející parametry dotazu na novou 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 -->

Příklad 3: Nekopírujte neshodné parametry

V následujícím příkladu je veřejná URL přepsána tak, aby odpovídala formátu backend service URL, a politika opouští všechny neodpovídající parametry dotazu.

<!-- 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 -->

Příklad 4: Použití výrazu politiky v šabloně

V následujícím příkladu politika používá výrazy v šabloně k vytvoření požadavku na backend.

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

Další informace o práci se zásadami najdete v tématech: