如何使用 avj 和 postman 验证 json 架构
Posted
技术标签:
【中文标题】如何使用 avj 和 postman 验证 json 架构【英文标题】:How to validate json schema using avj and postman 【发布时间】:2019-07-28 01:00:44 【问题描述】:我正在尝试验证如下所示的 json:
"errors": false,
在邮递员上使用这个:
var Ajv = require('ajv'),
ajv = new Ajv(logger: console, coerceTypes: false),
schema =
"errors":
"type": "number"
;
pm.test('Schema is valid', function()
var error = pm.response.json()['errors'];
console.log("this is error: " +error);
pm.expect(ajv.validate(schema, errors: error)).to.be.true;
);
pm.test('Schema is valid different way', function()
var error = pm.response.json()['errors'];
console.log("this is error: " +error);
var validate = ajv.compile(schema);
pm.expect(validate(pm.response.json())).to.be.true;
);
但它总是通过,即使我的错误对象是boolean
而不是number
。我做错了什么?
注意:日志如下所示
this is error: false
【问题讨论】:
【参考方案1】:您可以在 Postman 中使用 avj 检查 json 架构,如下所示:
var Ajv = require('ajv'),
ajv = new Ajv(logger: console),
schema =
"properties":
"errors":
"type": "boolean"
;
pm.test('Schema is valid', function()
var error = pm.response.json()['errors'];
pm.expect(ajv.validate(schema, errors: error)).to.be.true;
);
数据:
"errors": false
结果:通过
数据:
"errors": true
结果:通过
数据:
"errors": 123
结果:失败
另一种方式
pm.test('Schema is valid', function()
pm.expect(typeof(pm.response.json().errors) === "boolean").to.be.true;
);
【讨论】:
你没有抓住重点..数据是一个布尔值,我想验证它是布尔值,当它是一个数字时失败 @abbood,谢谢,已更新答案。让我知道我仍然缺少任何东西!以上是关于如何使用 avj 和 postman 验证 json 架构的主要内容,如果未能解决你的问题,请参考以下文章
使用 System.Web.Http.ApiController + Postman 进行身份验证 - 没有遇到断点/不确定这是如何工作的
如何使用 Postman 使用 cookie 身份验证测试 ASP.NET Core Web API?