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:

  • email
  • uri
  • uuid
  • date
  • date-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.

Volver al resumen del curso