Политика Azure APIM "rewrite-uri" - как удалить суффикс URL? - PullRequest
0 голосов
/ 22 января 2019

У меня есть требование, если у меня есть общедоступный URL-адрес Azure APIM - https://api.example.com/api/v1/storenumber/ordernumber

И

URL-адрес фоновой службы ( Примечание - здесь отсутствует суффикс пути URL) - https://back -end.service.com

Так что мне нужно удалить "/ api / v1 / storenumber / ordernumber" в APIM.

Как этого добиться в политиках Azure APIM?

Спасибо, Aneesh.

1 Ответ

0 голосов
/ 24 января 2019

Допустим, у вас есть служба APIM с именем хоста my-service.azure-api.net.API в службе APIM с суффиксом URL my-api и внутренним URI https://my-backend.com.И операция в этом API с шаблоном URI my/uri/template.

Так что для входящего звонка на

https://my -service.azure-api.net / my-api / my / uri / template

без какой-либо дополнительной настройки служба APIM выполнит вызов

https://my -backend.com / my / uri / template

Поскольку по умолчанию служба APIM заменяется наСхема исходного URI + имя хоста + суффикс api с URI бэкэнда, определенного для рассматриваемого API.

В самом простом случае, когда в вашем API есть только одна операция, вы можете установить суффикс API на api/v1/storenumber/ordernumber и шаблон операции на /.Это приведет к общедоступному URI-адресу https://api.example.com/api/v1/storenumber/ordernumber

и внутреннему URI для этой операции

https://back -end.service.com /

Конечно, такой подход сложнее использовать, когда у вас есть несколько операций в API.В этом случае вам нужно будет использовать политики: https://docs.microsoft.com/en-us/azure/api-management/api-management-transformation-policies#RewriteURL. Для этого вы можете установить любой суффикс API и шаблон URI операции, но добавьте эту политику во входящий раздел операции:

<rewrite-uri template="/" />

политика rewrite-uri переопределяет шаблон URI операции для внутреннего запроса.

...