У меня есть требование, если у меня есть общедоступный 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.
Допустим, у вас есть служба APIM с именем хоста my-service.azure-api.net.API в службе APIM с суффиксом URL my-api и внутренним URI https://my-backend.com.И операция в этом API с шаблоном URI my/uri/template.
my-service.azure-api.net
my-api
https://my-backend.com
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
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 операции для внутреннего запроса.