Introduccion a JSON Schema: valida estructura como en SQL

2024-04-13

Tener JSON valido en sintaxis no garantiza datos correctos. JSON Schema describe la forma permitida para verificar en runtime o CI.

Schema minimo

Empieza con tipo raiz object o array, define properties y lista required.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["id", "name"],
  "properties": {
    "id": { "type": "integer" },
    "name": { "type": "string", "minLength": 1 }
  }
}

Palabras clave comunes

type, enum, items, additionalProperties: false, oneOf y $ref son las mas usadas.

Uso en codigo

En JS puedes usar ajv; en Python jsonschema; en Go gojsonschema. OpenAPI usa un subconjunto de JSON Schema.

Frente a validar sintaxis

Primero JSON.parse, despues schema: separa errores de formato de errores de contrato.

Adopcion en equipo

Guarda schemas en repo, valida fixtures en CI y actualiza schema antes de cambios de API.