是否可以在策略内获取下面的指定网址部分:
<policies>
<inbound>
<base />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
<find-and-replace from="https://thirdparty/certs"
to="@(specified url part)" />
</outbound>
<on-error>
<base />
</on-error>
</policies>
请注意,整个网址可能包含版本控制和前缀。
答案 0 :(得分:0)
策略表达式的示例,当在入站路径中使用时,可用于基于发布的API中作为查询参数包括的版本信息来重定向传入请求。
<choose>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2014-03")">
<set-backend-service base-url="http://contoso.com/api/1.6/" />
</when>
<otherwise>
<set-backend-service base-url="http://contoso.com/api/2.0/"
</otherwise>
</choose>
在https://azure.microsoft.com/en-us/blog/policy-expressions-in-azure-api-management/
查找更多详细信息答案 1 :(得分:0)
整个URI(假设https://contoso.com/myapi/.wellknown/openid-config)包括:
context.Request.OriginalUrl.Scheme
context.Request.OriginalUrl.Host
context.Request.OriginalUrl.Port
context.Api.Path
因此,URL的运算部分可以通过近似context.Request.OriginalUrl.Path.Trim('/').Substring(context.Api.Path.Trim('/').Length)