Lección 3
Arrays, enums y formatos
Describe listas, valores permitidos, fechas, direcciones de correo, URLs y UUIDs.
Los objetos describen campos con nombre. Arrays, enums y formatos describen las restricciones comunes que aparecen dentro de esos campos.
Arrays
Usa items para describir cada elemento en un array:
{
"type": "array",
"items": { "type": "string" }
}
Para un array de objetos, coloca un esquema 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 un valor a un conjunto conocido:
{
"type": "string",
"enum": ["draft", "published", "archived"]
}
Los enums son útiles para estados de flujo de trabajo, modos, roles y etiquetas controladas. Evita usar enums para valores que cambian frecuentemente fuera del código, como nombres de clientes.
Formatos
format anota cadenas con intención semántica:
emailuriuuiddatedate-time
Los validadores difieren en qué tan estrictamente aplican formatos. En muchas bibliotecas, la validación de formato requiere un paquete u opción adicional. Trata el formato como validación útil, no como reemplazo de comprobaciones específicas de dominio.
Los esquemas generados necesitan revisión
Los generadores de esquemas pueden inferir valores predeterminados útiles a partir de ejemplos, pero una muestra solo muestra lo que ocurrió una vez. Revisa arrays, enums y formatos antes de publicar el esquema como contrato.