【问题标题】:Azure APIM policy to pass query param as a path paramAzure APIM 策略将查询参数作为路径参数传递
【发布时间】:2021-10-04 07:37:16
【问题描述】:
有没有办法将来自 APIM 请求的查询参数作为路径参数传递给后端服务调用?
例如:
对于下面的 API 调用
base_url/a/{pathParam1}?query=Qvalue
我想将 URL 转换为:
base_url/a/Qvalue/{pathparam1}
我还将使用 URL 重写策略来更改 base_url 并添加更新的查询参数。
【问题讨论】:
标签:
azure
azure-api-management
api-management
apim
【解决方案1】:
您可以使用以下命令读取策略表达式中的查询参数:context.Request.Url.Query.GetValueOrDefault("", "default value")。
根据需求,需要修改uri,可以通过rewrite-uri策略进行设置。因此,您所需的政策声明应如下所示(在入站部分添加):
<rewrite-uri id="setQvalue" template="@{
return "/base_url/a/Qvalue/"+context.Request.Url.Query.GetValueOrDefault("pathparam1", "");
}" />