2017-09-22 8 views
0

をスキーマに使用すると、エラーメッセージAjvから作業することが非常に困難です。私の使用例では、同じ値でない2つの小道具を検証したいと思います。この例を考える:Json Schema AJV not: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' } ] 

エラーMESSA Geは私に、notが拒否されたと伝えていますが、実際に関連する情報はconstが満足していないということです。

このユースケースでは、どのように意味のあるエラーメッセージが表示されるのでしょうか?

答えて

1

"const"は実際に満足していたので、「失敗」しなかったのです。 エラーオブジェクトには、データとスキーマのパスが含まれています。「詳細」オプションを指定すると、エラーの原因となったデータとスキーマの両方への参照が含まれます。これらから、エラーを解釈できるはずです。

+0

冗長にすることもできます... – jhohlfeld

+0

'冗長化された 'データが大量に出力されていますが、実際はテストにはあまりにも冗長です。私はカスタムエラーメッセージのプラグイン( 'npm ajv-errors')でそれを行いました。 – jhohlfeld

+0

レポに問題を追加しました:https://github.com/epoberezkin/ajv/issues/573 – jhohlfeld

関連する問題