繁体   English   中英

Azure API 管理策略-“rewrite-url”策略

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM