【问题标题】:Using Azure API Management Service, how do I parse a request property before sending to backend API?使用 Azure API 管理服务,如何在发送到后端 API 之前解析请求属性?
【发布时间】:2020-03-02 05:11:32
【问题描述】:

我有一个来自客户端应用程序的请求,我需要有条件地解析发送的请求字段中的 1 个。

例如。 假设我 POST 带有两个字段的请求正文

{"ID":"123","IPAddress":"127.0.0.1"}

{"ID":"123","IPAddress":"127.0.0.1, 127.0.0.2"}

我需要检查IP地址是否有逗号分隔集,如果有,解析最左边的IPAddress

如何使用 Azure API 管理网关 API 准确实现这一目标?政策?

【问题讨论】:

    标签: azure azure-api-management


    【解决方案1】:

    我没有测试过,但你应该可以使用 set-body 策略:

    <policies>
        <inbound>
            <base />
            <set-body>
            @{
                var body = context.Request.Body.As<JObject>();
                if (body.Property("IPAddress").Contains(","))
                {
                    var ips = body.Property("IPAddress").Split(",");
    
                    body.Property("IPAddress").Value = ips[0].Trim();
                }
            }
            </set-body>
        </inbound>
    </policies>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 2021-03-19
    • 1970-01-01
    相关资源
    最近更新 更多