通过Azure APIM策略获取基本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" />

是否可以在策略中获取基本url以及以下高亮显示的版本: 需要一个url,如下所示:

@(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对我来说为空。奇怪的是,您正在应用哪一级别的策略?您的定价级别是什么?是消费层吗?