如何使用Apigee Edge策略进行JSON模式验证?

时间:2014-07-07 14:40:54

标签: javascript json apigee jsonschema

假设您拥有根据json-schema.org定义的有效负载的模式,并且您希望在处理有效负载或将其传递到后端之前在代理中验证它,您如何正确验证有效载荷的内容?

2 个答案:

答案 0 :(得分:2)

Apigee没有内置的JSON模式验证器,所以最好的办法是创建类似tv4或其他基于javascript的验证器的Javascript。然后你需要创建一个Javascript标注,它有你的脚本来验证Apigee流变量并包含你的库(例如,tv4.js)

<Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="JSO- Validate-JSON">
    <DisplayName>JS-Validate-JSON</DisplayName>
    <FaultRules/>
    <Properties/>
    <ResourceURL>jsc://validatejson.js</ResourceURL>
    <IncludeURL>jsc://tv4.js</IncludeURL>
</Javascript>

tv4可在https://github.com/geraintluff/tv4

的github上找到

答案 1 :(得分:1)

要扩展Michael B.响应,validatejson.js将是一个JavaScript策略,它将架构加载到架构变量中,该变量将根据response.content进行验证:

var valid = tv4.validate(response.content, schema);
if(valid){
    log.info("Schema is valid!" + valid);
} else {
    context.setVariable("raiseFaultRuleSchemaValidation", "true");
    context.setVariable("raiseFaultRuleSchemaValidationMessage", tv4.error)
  }
}