使用Postman时,我会像这样验证JSON响应:
tv4.addSchema(globalSchema);
const valResult = tv4.validate(data, schema);
// schema is an object, which is a subschema from the larger globalSchema
正常工作,除了错误报告。我得到的错误对象丢失了dataPath
和schemaPath
,这使我的用户很难找出实际问题在哪里。有没有办法获得这些属性? (尝试validateResult和validateMultiple无效)
作为替代方案,我尝试了ajv,但是就像在草案04中一样,它给了我错误。他们网站上的建议
var ajv = new Ajv({schemaId: 'id'});
// If you want to use both draft-04 and draft-06/07 schemas:
// var ajv = new Ajv({schemaId: 'auto'});
ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-04.json'));
不起作用,因为Postman沙箱不允许我要求……有什么想法吗?
另请参阅:https://community.getpostman.com/t/json-schema-validation-troubles/5024
答案 0 :(得分:0)
这是我与邮递员验证架构的方法,以获取更多详细的错误:
const schema = {
};
var jsonData = JSON.parse(responseBody);
pm.test('Checking Response Against Schema Validation', function() {
var result=tv4.validateMultiple(jsonData, schema);
console.log(result);
pm.expect(result.valid).to.be.true;
});