YAML: El Formato de Config Del Que No Escapas
Docker Compose, GitHub Actions, Kubernetes, Ansible, pipelines CI/CD — todos usan YAML. Fue diseñado para ser legible por humanos, pero su sensibilidad a whitespace y tipado implícito causan sesiones interminables de debug.
Sintaxis Básica
# Pares clave-valor
name: Juan García
age: 30
email: juan@example.com
active: true
# Objetos anidados (indentación = estructura)
database:
host: localhost
port: 5432
name: myappListas (Arrays)
# Estilo bloque
frutas:
- manzana
- banana
- cereza
# Estilo inline
frutas: [manzana, banana, cereza]
# Lista de objetos
usuarios:
- name: Alice
role: admin
- name: Bob
role: userTipos de Datos
# Strings
name: Juan # string
quoted: "Hola, Mundo" # string explícita
# Números
count: 42 # entero
price: 19.99 # float
# Booleanos
active: true # también: True, yes, on
# Null
value: null # también: ~
# Fechas
created: 2026-04-23 # fecha ISO 8601Strings Multilínea
# Bloque literal (preserva newlines) — usa |
description: |
Esta es la línea 1.
Esta es la línea 2.
# Bloque doblado (newlines se convierten en espacios) — usa >
summary: >
Este es un párrafo largo
que será doblado en
una sola línea.Trampas del YAML
# TRAMPA 1: Problema de Noruega
country: NO # ¡Parseado como boolean false!
country: "NO" # String — siempre usa comillas
# TRAMPA 2: Números de versión
version: 3.10 # ¡Parseado como float 3.1!
version: "3.10" # String
# TRAMPA 3: Indentación debe ser espacios, nunca tabs
# TRAMPA 4: Dos puntos en valores
message: error: no encontrado # ¡Error de parse!
message: "error: no encontrado" # Con comillas — funcionaAnchors y Aliases (DRY)
defaults: &defaults
adapter: postgres
host: localhost
port: 5432
development:
<<: *defaults
database: myapp_dev
production:
<<: *defaults
host: prod-db.example.com
database: myapp_prodValida tu YAML: Formateador YAML — pega YAML, valida sintaxis, convierte a JSON.