【发布时间】:2023-04-09 06:11:01
【问题描述】:
假设您有根据 json-schema.org 定义的有效负载的架构,并且您想在处理负载或将其传递到后端之前在代理中对其进行验证,您如何正确验证内容有效载荷?
【问题讨论】:
标签: javascript json apigee jsonschema
假设您有根据 json-schema.org 定义的有效负载的架构,并且您想在处理负载或将其传递到后端之前在代理中对其进行验证,您如何正确验证内容有效载荷?
【问题讨论】:
标签: javascript json apigee jsonschema
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 可在 github 上https://github.com/geraintluff/tv4
【讨论】:
稍微扩展一下 Michael B. response 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)
}
}
【讨论】: