2017-09-22 9 views
0

내 스키마에 not을 사용할 때 Ajv의 오류 메시지와 함께 작동하는 것이 매우 어려운 것으로 나타났습니다. 필자는 동일한 값을 가지지 않는 두 개의 소품을 검증하고 싶습니다.Json Schema AJV가 아닙니다. const : 오류 메시지가 희미합니다.

schema.json

{ 
    "$schema": "http://json-schema.org/draft-06/schema", 
    "properties": { 
    "propA": { 
     "type": "string" 
    }, 
    "propB": { 
     "type": "string", 
     "not": { 
     "const": { 
      "$data": "1/propA" 
     } 
     } 
    } 
    } 
} 

데이터 오류 메사

{ propA: 'foo', propB: 'foo' } 

출력

[ { keyword: 'not', 
    dataPath: '.propB', 
    schemaPath: '#/properties/propB/not', 
    params: {}, 
    message: 'should NOT be valid' } ] 

이 예를 고려 GE는 not이 거부되었지만 실제로 관련 정보는 const이 만족스럽지 않다고합니다.

이 유스 케이스에 대해 의미있는 오류 메시지를 얻는 방법에 대한 힌트가 있거나 해결 방법이있는 사람이 있습니까?

답변

1

"const"는 실제로 만족되었으며, 이것이 "실패"하지 않은 이유입니다. 오류 개체에는 데이터와 스키마의 경로가 포함되어 있으며 "자세한 정보"옵션을 사용하면 오류의 원인이 된 데이터와 스키마에 대한 참조가 포함됩니다. 이들로부터 오류를 해석 할 수 있어야합니다.

+0

verbose가 옵션이 될 수 있습니다. – jhohlfeld

+0

'자세한 정보 출력 '에서 많은 양의 데이터를 출력하고 있는데, 실제로는 테스트를 위해 너무 장황합니다. 나는 커스텀 에러 메시지 플러그인 ('npm ajv-errors')으로 그것을했다. – jhohlfeld

+0

레포에 문제가 추가되었습니다. https://github.com/epoberezkin/ajv/issues/573 – jhohlfeld