2017-08-11 4 views
0

私はajvを使用して、データベースに書き込まれる前にいくつかのJSONデータを検証しています。私のリクエストデータは、基本的に(一例として)次のようになります。ajv validateが正しいスキーマで失敗する「データに追加のプロパティがありません」

DOC:

const validator: ajv.Ajv = this.getValidator(); 
validator.validate("Testschema.out", doc) 

これはTestschema.outは

次のようになります。これは、AJVバリデータに渡される

"name": "John", 
"id": "123-456-789" 

{ 
    "id": "Testschema.out", 
    "type": "object", 
    "allOf": [{ 
      "$ref": "anotherId#/definitions/someDefinition" 
     }, 
     { 
      "$ref": "Testschema" 
     } 
    ] 
} 

テストスキーマは、これを保持します。

{ 
    "id": "Testschema", 
    "type": "object", 
    "properties": { 
     "name": { 
      "type": "string" 
     } 
    }, 
    "additionalProperties": false, 
    "required": [ 
     "name" 
    ] 
} 

someDefinitionこの保持している間:

{ 
    "id": "anotherId", 
    "type": "object", 
    "definitions": { 
     "someDefinition": { 
      "type": "object", 
      "properties": { 
       "id": { 
        "type": "string" 
       } 
      } 
     } 
    } 
} 

しかし、検証が失敗した、と私は取得エラーが何らかの理由で「anotherId」スキーマで何かが検証に失敗した、具体的に"data should NOT have additional properties"です。 Testschemaに "id"プロパティを追加する場所があれば、検証は成功します。

答えて

関連する問題