Gliora

YAML

Concepto de Datos y formatos en Utilidades, conectado con sus herramientas y conceptos vecinos.

Actualizado el 31 de agosto de 2026

YAML (YAML Ain’t Markup Language) es un formato de serialización de datos diseñado para ser fácil de leer y escribir por personas. A diferencia de JSON y XML, no usa llaves ni etiquetas: la estructura se expresa con indentación y sangría. Es el formato estándar en Docker Compose, GitHub Actions, Kubernetes, Ansible y la mayoría de herramientas modernas de DevOps, así como en el frontmatter de archivos Markdown.

Tipos de datos en YAML

Escalares (valores simples)

nombre: Ana García          # cadena (sin comillas si no hay caracteres especiales)
edad: 32                    # entero
salario: 2500.50            # decimal
activo: true                # booleano (también: yes, no, on, off)
sin_valor: null             # nulo (también: ~)
fecha: 2026-08-31           # fecha (se parsea automáticamente en muchos parsers)

Trampa habitual: las palabras yes, no, true, false, on, off se tratan como booleanos. Si quieres una cadena, usa comillas:

estado: "no"   # cadena "no", no booleano false
pais: "NO"     # el código ISO de Noruega, no un booleano

Listas

lenguajes:
  - Python
  - JavaScript
  - Rust

# Forma compacta (equivalente)
lenguajes: [Python, JavaScript, Rust]

Mapas (objetos)

persona:
  nombre: Ana García
  edad: 32
  direccion:
    calle: Gran Vía 10
    ciudad: Madrid
    cp: "28013"   # entre comillas para preservar el cero inicial

Comentarios

# Esto es un comentario; JSON no los permite
nombre: Ana García  # comentario en línea

Los comentarios son una de las principales ventajas de YAML sobre JSON en archivos de configuración: puedes documentar el propósito de cada campo directamente en el fichero.

YAML frente a JSON y XML

CaracterísticaYAMLJSONXML
LegibilidadMuy altaModeradaModerada
ComentariosSí (#)NoSí (<!-- -->)
Tipos de datosRicos (fechas, anclas)BásicosBásicos + atributos
VerbosidadBajaMediaAlta
Velocidad de parseoMás lentaMás rápidaLenta
Uso típicoConfiguración, DevOpsAPIs RESTSOAP, documentos, legado

YAML es un superconjunto de JSON: cualquier JSON válido es también YAML válido. En APIs REST se prefiere JSON por velocidad y seguridad; para configuración legible por humanos, YAML es la opción habitual.

Anclas y alias: evitar repetición

YAML permite definir un bloque con & (ancla) y reutilizarlo con * (alias) y <<: (merge):

defaults: &defaults
  timeout: 30
  reintentos: 3
  verbose: false

produccion:
  <<: *defaults      # hereda todos los campos de defaults
  verbose: true      # sobrescribe solo este campo

staging:
  <<: *defaults
  timeout: 60

Esta funcionalidad no tiene equivalente en JSON y es especialmente útil en GitHub Actions o Docker Compose para evitar duplicar configuraciones entre entornos.

Cadenas multilínea

YAML ofrece dos formas de manejar cadenas con saltos de línea:

# Literal (|): conserva los saltos de línea
descripcion: |
  Primera línea.
  Segunda línea.
  Tercera línea.

# Plegado (>): convierte los saltos de línea en espacios
descripcion: >
  Este texto largo se plegará
  en una única línea al parsearse.

Usos más comunes de YAML

  • Docker Compose: define servicios, redes y volúmenes en docker-compose.yml.
  • GitHub Actions: workflows en .github/workflows/*.yml.
  • Kubernetes: manifiestos de pods, deployments y services.
  • Frontmatter de Markdown: metadatos al inicio de archivos .md en generadores como Astro, Jekyll o Hugo.
  • Ansible: playbooks para automatización de infraestructura.
  • OpenAPI/Swagger: especificación de APIs REST.
  • ESLint, Prettier, Stylelint: archivos de configuración .eslintrc.yml, etc.

Conceptos relacionados

Preguntas frecuentes

¿Qué significa YAML?
YAML es el acrónimo recursivo de YAML Ain't Markup Language (YAML no es un lenguaje de marcado). Es un formato de serialización de datos diseñado para ser legible por humanos, sin llaves ni corchetes, usando la indentación para expresar la jerarquía.
¿Es YAML un superconjunto de JSON?
Sí: todo JSON válido es también YAML válido. Sin embargo, YAML ofrece características adicionales que JSON no tiene: comentarios con #, anclas y alias para reutilizar bloques, y más tipos de datos nativos como fechas.
¿Qué errores son más frecuentes en YAML?
El error más común es la indentación incorrecta: YAML usa espacios (nunca tabuladores) para expresar jerarquía, y una diferencia de un espacio puede cambiar el significado por completo. También son frecuentes los problemas con cadenas sin comillas que el parser interpreta como booleano: yes, no, true, false, on y off se convierten automáticamente en booleanos en muchos parsers.

Ver todas las herramientas de Utilidades.