Функции возвращают объект, который выглядит примерно так:
{
"answer": {
"vehicle_type": 1,
"message": "Car"
},
"model": "VW",
"color": "red"
}
Объект «Ответ» всегда рядом. Остальные поля основаны на «типе транспортного средства».
E.g.
если vehicle_type = 1, есть «модель» и «цвет».
если vehicle_type = 2, есть «engine_count», «seat_count» и «wing_count».
Я пытаюсь написать JSON-схему, которую я буду использовать для проверки возвращаемого объекта.
Я хотел бы установить «модель» и «цвет» в качестве обязательных свойств, если «vehicle_type» равен 1. А если «vehicle_type» равен 2, то требуются «engine_count», «seat_count» и «wing_count».
Я использую валидатор схемы AJV (https://github.com/epoberezkin/ajv).
Для меня это проблематично, потому что vehicle_type вложен в ответ, а свойства, которые я хочу отметить как требуемые, находятся в родительском объекте. Другими словами, «validation_type» не находится на том же уровне, что «model» или «engine_count».
Я уже несколько раз подходил ... Я также пробовал с ключевыми словами ajv (переключатель, if / else / then), но мне не повезло
Любые идеи?