通过Azure APIM策略获取基本URL和具有版本标识符的URL
是否可以在策略中获取基本url以及以下高亮显示的版本: 需要一个url,如下所示:通过Azure APIM策略获取基本URL和具有版本标识符的URL,azure,azure-api-management,Azure,Azure Api Management,是否可以在策略中获取基本url以及以下高亮显示的版本: 需要一个url,如下所示: @(base url with version identifier) 在下面的查找和替换元素中使用上述内容: <policies> <inbound> <base /> <set-backend-service base-url="https://my.com/oidc" />
@(base url with version identifier)
在下面的查找和替换元素中使用上述内容:
<policies>
<inbound>
<base />
<set-backend-service base-url="https://my.com/oidc" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
<find-and-replace from="https://thirdparty/certs"
to="@(base url with version identifier)/certs" />
</outbound>
<on-error>
<base />
</on-error>
</policies>
更新
我怎样才能获得基本url呢?原因是,有时没有指定版本化的url,在这种情况下,只使用基本url重新定位
您可以使用下面的代码段获取具有版本的基本url
@{
var methodRoute = context.Request.Url.ToString().Replace(context.Api.ServiceUrl.ToString(),"");
var frontEndServiceUrl = context.Request.OriginalUrl.ToString().Replace(methodRoute,"");
}
为什么要使用策略表达式获取基本url?它将得到表达式语法无效的结果。当您将表达式与自定义字符串一起使用时。如何也获取基本url?原因是,有时没有指定版本化的url,在这种情况下,只使用基本url来重新定位。@Pingpon对不起。我不明白?如果您尝试使用某个版本,上面的代码将为您提供完整版本的URL。否则它会给你基本的url吗?您的要求是,获取带版本和不带版本的基本url吗?让我know@Pingpong这在我的环境下很好用。也许,您可以尝试跟踪请求,并查看如何获得错误上下文。Api对我来说为空。奇怪的是,您正在应用哪一级别的策略?您的定价级别是什么?是消费层吗?