如何使用 avj 和 postman 验证 json 模式 [英] How to validate json schema using avj and postman

查看:78
本文介绍了如何使用 avj 和 postman 验证 json 模式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试验证如下所示的 json:

I'm trying to validate the following json that looks like this:

{
    "errors": false,
}

在邮递员身上使用这个:

using this on postman:

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.我做错了什么?

but it's always passing, even though my errors object is a boolean and not a number. What am I doing wrong?

注意:日志看起来像这样

note: the logs look like this

this is error: false

推荐答案

您可以在 Postman 中使用 avj 来检查 json 模式,如下所示:

You can check json schema using avj in Postman as follows:

    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;
});

这篇关于如何使用 avj 和 postman 验证 json 模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆