Udostępnij przez


Zapisz ponownie adres URL

DOTYCZY: Wszystkie warstwy usługi API Management

Polityka konwertuje rewrite-uri adres URL żądania z publicznego formularza na formę oczekiwaną przez usługę internetową.

Korzystaj z tej polityki, gdy musisz przekształcić przyjazny dla człowieka lub przeglądarkę adres URL na format URL oczekiwany przez usługę internetową. Stosuj tę politykę tylko przy udostępnianiu alternatywnego formatu URL, takiego jak czyste URL, RESTful, przyjazne użytkownikowi lub przyjazne SEO, które są czysto strukturalne i nie zawierają ciągu zapytań, lecz jedynie ścieżkę zasobu (po schemacie i autorytecie). Często wprowadza się tę zmianę ze względów estetycznych, użyteczności lub optymalizacji pod kątem wyszukiwarek (SEO).

Uwaga

Ustaw elementy zasad i elementy podrzędne w kolejności podanej w instrukcji zasad. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.

Instrukcja zasad

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

Atrybuty

Imię i nazwisko/nazwa opis Wymagani Wartość domyślna
szablon Rzeczywisty adres URL usługi internetowej z dowolnymi parametrami ciągu zapytania. Wyrażenia zasad są dozwolone. Gdy wyrażenia są używane, cała wartość musi być wyrażeniem. Tak Nie dotyczy
copy-unmatched-params Określa, czy parametry zapytania w żądaniu przychodzącym, które nie są obecne w oryginalnym szablonie URL, są dodawane do URL zdefiniowanego przez szablon przepisywania. Wyrażenia zasad są dozwolone. Nie. true

Użycie

Uwagi dotyczące użycia

Parametry łańcucha zapytań można dodać tylko za pomocą tej polityki. Nie możesz dodać dodatkowych parametrów ścieżki szablonu w przepisanym URL.

Przykłady

Przykład 1: Podstawowa przeróbka URL

W poniższym przykładzie publiczny adres URL jest przepisywany tak, aby odpowiadał formatowi URL usługi backend, a parametry zapytań są uwzględniane na podstawie innej logiki.

  • Publiczny adres URL — http://api.example.com/storenumber/ordernumber

  • Adres URL żądania — 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>

Przykład 2: Kopiowanie niedopasowanych parametrów

W poniższym przykładzie publiczny adres URL jest przepisywany tak, aby odpowiadał formatowi usługi backend, a polityka kopiuje wszelkie niedopasowane parametry zapytania do nowego 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 -->

Przykład 3: Nie kopiuj niedopasowanych parametrów

W poniższym przykładzie publiczny adres URL jest przepisywany tak, aby odpowiadał formatowi URL usługi backendowej, a polityka usuwa wszelkie niedopasowane parametry zapytań.

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

Przykład 4: Użycie wyrażenia polityki w szablonie

W poniższym przykładzie polityka wykorzystuje wyrażenia w szablonie do konstrukcji żądania do backendu.

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

Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz: