Lição 3
Arrays, enums e formatos
Descreva listas, valores permitidos, datas, emails, URLs e UUIDs.
Objetos descrevem campos nomeados. Arrays, enums e formatos descrevem restrições comuns dentro desses campos.
Arrays
Use items para descrever cada elemento de um array:
{
"type": "array",
"items": { "type": "string" }
}
Para um array de objetos, coloque um schema de objeto dentro de items:
{
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": { "type": "string" },
"quantity": { "type": "integer", "minimum": 1 }
},
"required": ["sku", "quantity"]
}
}
Enums
enum limita um valor a um conjunto conhecido:
{
"type": "string",
"enum": ["draft", "published", "archived"]
}
Enums são úteis para estados de workflow, modos, papéis e rótulos controlados. Evite enums para valores que mudam com frequência fora do código, como nomes de clientes.
Formatos
format anota strings com intenção semântica:
emailuriuuiddatedate-time
Validadores variam no rigor de aplicação de formatos. Em muitas bibliotecas, validação de formato exige pacote ou opção extra. Trate format como validação útil, não como substituto de regras de domínio.
Schemas gerados precisam de revisão
Geradores de schema podem inferir bons padrões a partir de exemplos, mas uma amostra mostra apenas o que apareceu uma vez. Revise arrays, enums e formatos antes de publicar o schema como contrato.