En este artículo
Que es JSON Schema?
JSON Schema es un vocabulario que permite describir la estructura y las reglas de validacion para datos JSON. Escrito en JSON mismo, un esquema define que propiedades puede tener un objeto, que tipos estan permitidos, que campos son obligatorios y que restricciones se aplican -- convirtiendo contratos de datos informales en especificaciones legibles por maquinas.
La version mas utilizada es Draft-07, aunque las versiones mas recientes (2019-09, 2020-12) agregan funcionalidades como esquemas condicionales y referencias dinamicas. Un generador de JSON Schema automatiza el tedioso proceso de escribir esquemas manualmente -- analiza datos JSON de ejemplo e infiere automaticamente los tipos, la estructura y los campos obligatorios.
Como funciona la generacion de esquemas
Un generador de esquemas examina su JSON de ejemplo y produce un esquema que lo validaria. El proceso involucra inferencia de tipos, analisis de estructura y deteccion de restricciones.
- Inferencia de tipos -- cada valor se inspecciona para determinar su tipo JSON (string, number, integer, boolean, null, array, object) y el esquema asigna la palabra clave de tipo correspondiente
- Analisis de estructura anidada -- los objetos se analizan recursivamente para generar subesquemas para cada propiedad, y los arrays se inspeccionan para inferir el esquema de elementos a partir de su contenido
- Deteccion de campos obligatorios -- todas las propiedades presentes en el ejemplo se marcan tipicamente como obligatorias, ya que el generador asume que el ejemplo representa una instancia valida completa
Pruébalo gratis — sin registro
Generar un JSON Schema →Cuando usar JSON Schema
JSON Schema es una herramienta fundamental para cualquier proyecto que envia o recibe datos JSON.
- Validacion de solicitudes API -- valide los datos entrantes contra un esquema antes de procesarlos, rechazando solicitudes mal formadas tempranamente y proporcionando mensajes de error claros a los consumidores de la API
- Generacion de formularios -- bibliotecas UI como react-jsonschema-form y vue-form-generator pueden generar formularios automaticamente a partir de un JSON Schema, manteniendo la validacion del backend y la interfaz del frontend sincronizadas
- Pruebas de contrato en CI/CD -- verifique que las respuestas API coincidan con el esquema esperado en pruebas de integracion, detectando cambios incompatibles antes de que lleguen a produccion
Preguntas frecuentes
Que version de draft de JSON Schema debo usar?
Draft-07 es la opcion mas segura para amplia compatibilidad -- la mayoria de los validadores, generadores de formularios y generadores de codigo lo soportan completamente. Use 2020-12 si necesita funciones avanzadas como $dynamicRef, prefixItems o unevaluatedProperties. Siempre verifique que su biblioteca de validacion soporte el draft que elija.
Como combinar multiples esquemas?
JSON Schema proporciona palabras clave de composicion: allOf requiere que todos los subesquemas coincidan, anyOf requiere que al menos uno coincida, y oneOf requiere que exactamente uno coincida. Use $ref para referenciar definiciones de esquema reutilizables. Por ejemplo, un esquema User podria usar allOf para combinar un esquema PersonSchema base con campos de autenticacion adicionales.
Se pueden generar tipos TypeScript a partir de un JSON Schema?
Si. Herramientas como json-schema-to-typescript y quicktype convierten JSON Schemas en interfaces TypeScript, asegurando que los tipos del frontend se mantengan sincronizados con los contratos del backend. Esto es especialmente util en monorepos donde el esquema sirve como la unica fuente de verdad tanto para la validacion de API como para la verificacion de tipos del lado del cliente.