Pega tu definición de JSON Schema en el campo izquierdo y el JSON de la respuesta de la API en el derecho. La herramienta comparará ambas estructuras automáticamente, validando tipos de datos, campos obligatorios, patrones regex y más. Es un paso esencial para las pruebas de contrato de API y garantizar la consistencia entre frontend y backend.
La herramienta es compatible con el estándar JSON Schema Draft-07. Soporta verificación de tipos (type), campos obligatorios (required), propiedades (properties), patrones regex (pattern), validación de formato (format), valores permitidos (enum) y lógica de combinación avanzada (allOf, anyOf, oneOf, not).
Cuando el JSON no cumple con el esquema, la herramienta genera un informe detallado que indica la ruta exacta del error (por ejemplo, `data.users[0].email`), el tipo de error (incompatibilidad de tipos, campo obligatorio faltante, etc.) y la regla del esquema que se violó. Esto te permite localizar y corregir problemas rápidamente.
Sí. Antes de cargar datos en una base de datos o procesarlos en un pipeline ETL, puedes verificar que cumplen con las especificaciones de tu esquema. Esto te permite detectar datos sucios o anomalías antes de que entren en tu sistema, garantizando la calidad de los datos.
No. Todo el proceso de validación se ejecuta de forma local en tu navegador. Ningún dato se transmite a servidores externos, lo que garantiza la total privacidad de tu información, especialmente cuando trabajas con estructuras de API empresariales o datos sensibles.
La siguiente tabla lista las palabras clave de validación más utilizadas en la especificación JSON Schema, organizadas por categoría para referencia rápida.
| Palabra Clave | Descripción |
|---|---|
| Tipos Básicos | |
type | Especifica el tipo de datos: string, number, integer, boolean, array, object, null. Soporta un tipo único o un array de tipos. |
| Validación de Objetos | |
properties | Define sub-esquemas para las propiedades del objeto. |
required | Array de strings que especifica qué propiedades son obligatorias. |
additionalProperties | Controla si se permiten propiedades extra no definidas en properties; puede ser false o un esquema. |
propertyNames | Esquema que deben cumplir los nombres de las propiedades (comúnmente usa regex pattern). |
minProperties | Número mínimo de propiedades que debe contener un objeto. |
maxProperties | Número máximo de propiedades que puede contener un objeto. |
| Enums y Constantes | |
enum | Array de valores permitidos; los datos deben ser exactamente un valor del array. |
const | Valor constante; los datos deben ser estrictamente iguales a este valor. |
| Restricciones Numéricas | |
minimum | Valor numérico mínimo (inclusivo). |
maximum | Valor numérico máximo (inclusivo). |
exclusiveMinimum | El valor debe ser estrictamente mayor que (exclusivo). |
exclusiveMaximum | El valor debe ser estrictamente menor que (exclusivo). |
multipleOf | El valor debe ser un múltiplo del número especificado. |
| Restricciones de Strings | |
minLength | Longitud mínima del string. |
maxLength | Longitud máxima del string. |
pattern | Expresión regular; el string debe coincidir con este patrón. |
format | Validación de formato semántico: email, uri, date-time, uuid, ipv4, ipv6, hostname, etc. |
| Restricciones de Arrays | |
items | Esquema para los elementos del array (un solo esquema se aplica a todos los elementos). |
minItems | Número mínimo de elementos en el array. |
maxItems | Número máximo de elementos en el array. |
uniqueItems | Si los elementos del array deben ser únicos. |
contains | Al menos un elemento del array debe coincidir con este esquema. |
| Lógica Combinatoria | |
allOf | Los datos deben coincidir con todos los sub-esquemas (Y lógico). |
anyOf | Los datos deben coincidir con al menos un sub-esquema (O lógico). |
oneOf | Los datos deben coincidir con exactamente un sub-esquema (XOR). |
not | Los datos NO deben coincidir con este esquema (NO lógico). |
| Validación Condicional | |
if | Esquema condicional; si los datos coinciden con if, deben cumplir then; de lo contrario deben cumplir else. |
then | Esquema a cumplir cuando la condición if se cumple. |
else | Esquema a cumplir cuando la condición if no se cumple. |
| Referencias y Reutilización | |
$ref | Referencia a otras definiciones de esquema; soporta referencias locales (#/$defs/xxx) y referencias remotas. |
$defs | Define sub-esquemas reutilizables (Draft 2019-09+; versiones antiguas usan definitions). |
definitions | Palabra clave para sub-esquemas reutilizables en Draft 4-7. |
| Metadatos | |
title | Título del esquema (anotación, no se valida). |
description | Descripción del esquema (anotación, no se valida). |
default | Valor por defecto (anotación, no se valida). |
examples | Array de valores de ejemplo (anotación, no se valida). |
$schema | Especifica la versión de la especificación JSON Schema en uso. |
| Dependencias | |
dependentRequired | Dependencia de propiedades: cuando una propiedad existe, otras propiedades también deben existir (Draft 2019-09+). |
dependencies | Palabra clave de dependencia en Draft 4-7 que cubre tanto dependencias de propiedades como de esquemas. |
JSON Schema ha evolucionado a través de múltiples versiones Draft. Draft 7 es actualmente la versión más utilizada; Draft 2020-12 es la última versión estable.
| Característica | Draft 4 | Draft 6 | Draft 7 | 2019-09 | 2020-12 |
|---|---|---|---|---|---|
| validación de tipos | ✓ | ✓ | ✓ | ✓ | ✓ |
| campos obligatorios | ✓ | ✓ | ✓ | ✓ | ✓ |
| enum/const | ✓ enum | ✓ | ✓ | ✓ | ✓ |
| minimum/maximum | ✓ | ✓ | ✓ | ✓ | ✓ |
| exclusiveMinimum/Maximum | booleano | número | número | número | número |
| multipleOf | ✓ | ✓ | ✓ | ✓ | ✓ |
| minLength/maxLength | ✓ | ✓ | ✓ | ✓ | ✓ |
| regex pattern | ✓ | ✓ | ✓ | ✓ | ✓ |
| validación de formatos | ✓ | ✓ | ✓ | solo anotación por defecto | solo anotación por defecto |
| array items | ✓ | ✓ | ✓ | ✓ | ✓ |
| contains | ✗ | ✓ | ✓ | ✓ | ✓ |
| minItems/maxItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| uniqueItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| additionalProperties | ✓ | ✓ | ✓ | ✓ | ✓ |
| propertyNames | ✗ | ✓ | ✓ | ✓ | ✓ |
| allOf/anyOf/oneOf/not | ✓ | ✓ | ✓ | ✓ | ✓ |
| if/then/else | ✗ | ✗ | ✓ | ✓ | ✓ |
| referencias $ref | ✓ | ✓ | ✓ | ✓ | ✓ |
| reutilización $defs | definitions | definitions | definitions | $defs | $defs |
| dependentRequired | ✗ | ✗ | ✗ | ✓ | ✓ |
| tuplas prefixItems | forma de array | forma de array | forma de array | forma de array | prefixItems |
| unevaluatedProperties | ✗ | ✗ | ✗ | ✓ | ✓ |
| $dynamicRef/$anchor | ✗ | ✗ | ✗ | ✓ $recursiveRef | ✓ dynamicRef |