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