Skip to main content
CheckTown
Generadores

Generador JSON Schema: crear esquemas a partir de ejemplos

Publicado 5 min de lectura
En este artículo

Que es JSON Schema?

JSON Schema es un vocabulario que permite describir la estructura y las reglas de validación 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 versión 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 generación de esquemas

Un generador de esquemas examina su JSON de ejemplo y produce un esquema que lo validaria. El proceso involucra inferencia de tipos, análisis de estructura y detección 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
  • Análisis 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
  • Detección 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 envía o recibe datos JSON.

  • Validación 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
  • Generación de formularios -- bibliotecas UI como react-jsonschema-form y vue-form-generator pueden generar formularios automaticamente a partir de un JSON Schema, manteniendo la validación 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 integración, detectando cambios incompatibles antes de que lleguen a producción

Preguntas frecuentes

Que versión de draft de JSON Schema debo usar?

Draft-07 es la opción mas segura para amplía compatibilidad -- la mayoría de los validadores, generadores de formularios y generadores de código lo soportan completamente. Use 2020-12 si necesita funciones avanzadas como $dynamicRef, prefixItems o unevaluatedProperties. Siempre verifique que su biblioteca de validación soporte el draft que elija.

Como combinar multiples esquemas?

JSON Schema proporciona palabras clave de composición: 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 podría usar allOf para combinar un esquema PersonSchema base con campos de autenticación 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 validación de API como para la verificación de tipos del lado del cliente.

Herramientas relacionadas