Я писал простые схемы JSON, но я столкнулся с вызовом ввода API, который немного сложнее . У меня есть один спокойный конечный маршрут, который может принимать 3 очень разных типа JSON:
localhost / foo
может принимать:
{"type": "ice_cream", "cone": "waffle" ... }
или
{"type": "hot_dog", "bun": "пшеница" ...}
Если ключ "type" содержит "ice_cream", я хочу видеть только этот ключ "конус", а не ключевой "булочка". Аналогично, если "type" содержит "hot_dog", я хочу видеть только "bun", а не "cone". Я знаю, что могу сопоставить шаблон, чтобы убедиться, что я когда-либо вижу только тип «ice_cream» или тип «hot_dog», но я не знаю, как заставить требования некоторых других полей, если этот ключ установлен на это значение. Я вижу, что есть поле схемы json под названием «зависимость», но я не нашел хороших примеров того, как его использовать.
Кстати, я не уверен, что этот входной JSON является хорошей формой (перегрузка типа Структура JSON, которую он действительно принимает), но я не У меня есть возможность изменить api.