написание более сложных схем json, которые зависят от других ключей

Я писал простые схемы 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.

6
задан V_H 18 February 2011 в 00:19
поделиться