简体   繁体   English

AJV未验证我的架构

[英]AJV is not validating my schema

I am facing problem regarding AJV Schema Validator. 我遇到有关AJV模式验证程序的问题。 I have following schema 我有以下架构

{
    "$id": "create-offer.json#",
    "body": {
        "type": "object",
        "properties": {
            "statusCode": {
                "type": "number"
            },
            "id": {
                "type": "string"
            },
            "name": {
                "type": "string"
            },
            "description": {
                "type": "string"
            },
            "status": {
                "type": "string"
            },
            "type": {
                "type": "string"
            },
            "routePlanId": {
                "type": "string"
            },
            "currencyId": {
                "type": "string"
            },
            "autoRateUpdateActive": {
                "type": "boolean"
            }
        }
    }
}

And my response is : 我的回答是:

{ statusCode: 2006,
  statusPhrase: 'Error: ORA-00001: unique constraint (SPHERE_D1.CHECK_UNIQUE_RATE_NAME) violated\nORA-06512: at "SPHERE_D1.PKG_RATE_TABLES_V2", line 102\nORA-06512: at "SPHERE_D1.PKG_RATE_TABLES_V2", line 54\nORA-06512: at line 1' }

Using the following code to validate : 使用以下代码进行验证:

let valid = ajv.validate(schema, res);
var detailedErrorMsg = "\n" + ajv.errorsText(ajv.errors, { separator: "\n" }) + "\n";
console.log(detailedErrorMsg);

AJV should return error as schema and response are different, but AJV is returning 'no errors'. AJV应该返回错误,因为架构和响应不同,但是AJV返回的是“无错误”。 Is there any problem with the code ? 代码有问题吗?

This is resolved by adding required feilds in schema definition. 通过在架构定义中添加必需的字段可以解决此问题。

{
    "$id": "create-offer.json#",
    "description": "",
    "title": "",
    "type": "object",
    "required": [
        /*mention objects which should be requird*/
    ]
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM