使用Azure API管理服务,如何在发送到后端API之前解析请求属性?

我有一个来自客户端应用程序的请求,我需要有条件地解析发送的请求字段中的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完全实现此目的?政策?

zqplyn1234 回答:使用Azure API管理服务,如何在发送到后端API之前解析请求属性?

我还没有测试过,但是您应该可以使用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[ips.Length -1].Trim();
            }
        }
        </set-body>
    </inbound>
</policies>
本文链接:https://www.f2er.com/3157020.html

大家都在问