Introducao ao JSON Schema: valide estrutura como em SQL

2024-04-13

JSON valido em sintaxe nao garante dado correto. JSON Schema descreve o formato permitido para checagem em runtime ou CI.

Schema minimo

Comece com tipo raiz object ou array, defina properties e 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 }
  }
}

Palavras-chave comuns

type, enum, items, additionalProperties: false, oneOf e $ref cobrem os casos mais frequentes.

Uso em codigo

Em JS use ajv; em Python jsonschema; em Go gojsonschema. OpenAPI usa um subconjunto de JSON Schema.

Comparado a validar sintaxe

Primeiro JSON.parse, depois schema: separa erro de formato de violacao de contrato.

Adocao no time

Versione schemas no repo, valide fixtures em CI e atualize schema antes de mudar a API.