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

问题描述 投票:0回答:1

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

例如假设我发布了带有两个字段的请求正文

{"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个回答
1
投票

我还没有测试过,但是您应该可以对其使用机体策略:

<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>
© www.soinside.com 2019 - 2024. All rights reserved.