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