Как сделать отчеты об ошибках 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.

0 ответов

Другие вопросы по тегам