Перезаписать URL-адрес

ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API

Политика преобразует URL запроса из его публичной формы в форму, rewrite-uri ожидаемую веб-сервисом.

Используйте эту политику, когда нужно преобразовать удобный для человека или браузера URL в ожидаемый веб-сервисом формат. Применяйте эту политику только при использовании альтернативного формата URL, таких как чистые URL, RESTful URL, удобные для пользователя URL или SEO-дружественные URL, которые не содержат строки запроса, а только путь ресурса (после схемы и авторитета). Вы часто делаете это изменение ради эстетики, удобства использования или поисковой оптимизации (SEO).

Примечание.

Задайте элементы политики и дочерние элементы в порядке, указанном в правиле политики. Узнайте, как устанавливать или изменять политики службы управления API.

Правило политики

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

Атрибуты

Имя. Описание Обязательное поле По умолчанию.
JSON Фактический URL-адрес веб-службы с любыми параметрами строки запроса. Допустимы выражения политики. При использовании выражений все значение должно быть выражением. Да Н/П
Copy-unmatched-params Указывает, добавляются ли параметры запроса в входящем запросе, отсутствующие в исходном шаблоне URL, к URL, определённому шаблоном переписи. Допустимы выражения политики. нет true

Использование

Примечания об использовании

Вы можете добавить параметры строк запроса только с помощью политики. Нельзя добавлять дополнительные параметры пути шаблона в переписанный URL.

Примеры

Пример 1: Базовое переписывание URL

В следующем примере публичный URL переписывается в соответствии с форматом серверного сервиса, а параметры запроса включаются на основе другой логики.

  • Открытый URL — http://api.example.com/storenumber/ordernumber.

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

Пример 2: Копирование несопоставленных параметров

В следующем примере публичный URL переписывается в соответствии с форматом серверного сервиса, а политика копирует любые несогласованные параметры запроса на новый 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 -->

Пример 3: Не копировать несовпадающие параметры

В следующем примере публичный 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" copy-unmatched-params="false" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>
<!-- Resulting URL will be /put -->

Пример 4: Используйте выражение политики в шаблоне

В следующем примере политика использует выражения в шаблоне для построения запроса к бэкенду.

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

Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.