我有一个来自客户端应用程序的请求,我需要有条件地解析发送的请求字段中的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完全实现此目的?政策?
我有一个来自客户端应用程序的请求,我需要有条件地解析发送的请求字段中的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完全实现此目的?政策?
我还没有测试过,但是您应该可以使用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>