PureTools

Sintaxis YAML: Referencia Rápida para Desarrolladores

PureTools Team· 7 min de lectura
Sintaxis YAML: Referencia Rápida para Desarrolladores

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: myapp

Listas (Arrays)

# Estilo bloque
frutas:
  - manzana
  - banana
  - cereza

# Estilo inline
frutas: [manzana, banana, cereza]

# Lista de objetos
usuarios:
  - name: Alice
    role: admin
  - name: Bob
    role: user

Tipos 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 8601

Strings 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 — funciona

Anchors 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_prod

Valida tu YAML: Formateador YAML — pega YAML, valida sintaxis, convierte a JSON.