He estado escribiendo esquemas JSON simples pero encontré una llamada de entrada API que es un poco más compleja. Tengo una ruta final reparador que puede tomar 3 tipos muy diferentes de JSON:escribiendo esquemas json más complejos que tienen dependencias sobre otras claves
localhost/foo
puede tomar:
{ "type": "ice_cream", "cono": "waffle" ...}
o
{ "type": "hot_dog", "bollo": "trigo" ...}
Si la tecla "tipo" contiene "ice_cream", sólo yo siempre quiero ver la clave "cono "y no el" bollo "clave. De manera similar, si "tipo" contiene "hot_dog", solo quiero ver "bollo" y no "cono". Sé que puedo emparejar patrones para asegurarme de que solo veo el tipo "ice_cream" o escribo "hot_dog", pero no sé cómo forzar el requisito de ciertos otros campos si esa clave se establece en ese valor. Veo que hay un campo de esquema json llamado "dependencia", pero no he encontrado ningún buen ejemplo sobre cómo usarlo.
Por cierto, no estoy seguro de si esta entrada JSON es buena (sobrecarga el tipo de estructura JSON que se necesita, efectivamente), pero no tengo la opción de cambiar la API.
Sé que esta es una vieja pregunta, pero pensé que solo mencionaría que v5 * might * have a ['switch'] (https://github.com/json-schema/json-schema/wiki/ switch-% 28v5-proposal% 29) palabra clave que hace exactamente lo que quiere. Sin embargo, tendremos que esperar el borrador real ... – cloudfeet