Этого можно добиться, убедившись, что все шаблоны URL операций в APIM начинаются с / {tenant} /. Затем вы можете добавить политику на глобальном уровне или уровне API, чтобы выполнить преобразование:
<rewrite-uri template="@{
var operationPath = context.Operation.UrlTemplate.TrimStart('/').Replace("{*", "{");
var result = operationPath.Substring(operationPath.IndexOf('/'));
return ("/retail/data" + result).Replace("/v1/", "/v1-beta2/");
}" />
Эта политика перезапишет URI текущего запроса, удалив первый сегмент из шаблона URI. Поэтому, если APIM получает запрос на операцию /{tenant}/xxx
, он переписывает его на /xxx
.
И затем вы можете добавить арендатора в качестве параметра запроса с помощью:
<set-query-parameter name="tenant" exists-action="override">
<value>@(context.Request.MatchedParameters["tenant"])</value>
</set-query-parameter>