![](/img/trans.png)
[英]Azure API Management Policy(Rewrite URI policy)- Template and Query Parameters
[英]Azure API Management Policy- "rewrite-url" policy
我正在尝试创建一个策略,它将保险公司 ID 从输入正文中提取出来并将其放入 URL 中,如下图所示。
尝试清理请求正文并重建 URL 以便请求可以成功发布到我们的批准端点
预期结果:
https://apimanagement.test.com/consto-123/api/relationship/approve/{id}
请求正文:
{
"insurer_name": "Tony",
"insurer_id": "12345",
"comments": "This is test"
}
您必须从请求正文中提取insurer_id
并将其存储为变量:
<set-variable name="insurerId" value="@{
var body = context.Request.Body.As<JObject>(true);
return body["insurer_id"].Value<string>();
}" />
之后,您可以将rewrite-uri与此变量一起使用,并将请求转发给 blackened。
完整的政策:
<policies>
<inbound>
<base />
<set-variable name="insurerId" value="@{
var body = context.Request.Body.As<JObject>(true);
return body["insurer_id"].Value<string>();
}" />
<rewrite-uri template="@("/api/relationship/approve/" + context.Variables.GetValueOrDefault<string>("insurerId"))" copy-unmatched-params="false" />
<set-backend-service base-url="https://rfqapiservicey27itmeb4cf7q.azure-api.net" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.