Как сделать отчеты об ошибках ajv менее подробными
Можно ли сделать отчеты ajv менее подробными? Кажется, что когда я использую "anyOf/oneOf" и одно из условий внутри не выполняется, ajv сообщает обо всех условиях, которые были определены в "anyOf/oneOf", и говорит, что ни одно из условий не соответствует.
Например, скажем, есть определение для компьютерных частей (cpu, ssd и т. Д.), Определенное как:
Схема (пропущены не соответствующие части):
"properties": {
"parts": {
"type": "array",
"items": {"$ref": "#/definitions/def_part"}
}
},
"definitions": {
...
...
...
"def_part": {
"oneOf": [
{
"$ref": "#/definitions/def_cpu"
},
{
"$ref": "#/definitions/def_ssd"
}
...
...
...
]
}
}
Учитывая следующие данные:
{
"name": "Computer Build 1",
"parts": [
{
"cpu": {}
},
{
"ssd": {
"capacity": 256
}
}
]
}
Обратите внимание, что "процессор" является пустым объектом, который является недопустимым в соответствии со схемой.
Ответ (на самом деле это одна ошибка, я разбил ее на новые строки, чтобы сделать ее более читабельной):
data / parts / 0 / cpu должен иметь обязательное свойство 'model',
data / parts / 0 должна иметь обязательное свойство 'ssd',
data / parts / 0 должна соответствовать какой-то схеме в anyOf
Проблема в том, что он становится очень грязным, когда все больше и больше определений добавляются в "anyOf/oneOf". Я использую черновик-07 с ajv 6.0.0-rc.1.