DevToolBoxGRATIS
Blog

Sintaxis YAML y validación: Errores comunes y cómo solucionarlos

9 min de lecturapor DevToolBox

YAML es el formato de configuración preferido para Docker, Kubernetes y pipelines CI/CD. A pesar de su sintaxis amigable, es sorprendentemente fácil cometer errores.

Dónde se usa YAML

  • Docker Compose
  • Manifiestos Kubernetes
  • GitHub Actions / GitLab CI
  • Playbooks Ansible
  • Archivos de configuración

Reglas de sintaxis básicas

Indentación

YAML usa espacios (nunca tabulaciones):

# ✅ Correct (2-space indentation)
server:
  host: localhost
  port: 8080
  database:
    name: myapp
    pool: 10

# ❌ Wrong (tab characters or inconsistent spaces)
server:
	host: localhost    # Tab character - INVALID!
   port: 8080        # 3 spaces - inconsistent!

Pares clave-valor

Separados por dos puntos y espacio:

# ✅ Correct
name: John Doe
port: 8080

# ❌ Wrong - missing space after colon
name:John Doe

Strings multilínea

YAML ofrece dos estilos para strings multilínea:

# | (literal block) - preserves newlines
description: |
  This is line one.
  This is line two.
  Each newline is preserved.

# > (folded block) - folds newlines to spaces
description: >
  This is a long paragraph
  that will be joined into
  a single line.

Tipos de datos

TipoSintaxisEjemplo
Stringplain, "quoted", 'quoted'name: John
Integer42, 0xFF, 0o77port: 8080
Float3.14, .inf, .nanpi: 3.14159
Booleantrue/falsedebug: true
Nullnull, ~, (empty)value: null
DateYYYY-MM-DDdate: 2026-02-10

El "problema Noruega"

En YAML 1.1, `NO` se interpreta como `false`. Use comillas:

# ❌ YAML 1.1 interprets these as booleans!
country: NO        # → false
answer: yes        # → true
switch: on         # → true

# ✅ Fix: quote the values
country: "NO"      # → string "NO"
answer: "yes"      # → string "yes"
switch: "on"       # → string "on"

Colecciones

# List (sequence)
fruits:
  - apple
  - banana
  - cherry

# Nested map
database:
  host: localhost
  port: 5432
  credentials:
    user: admin
    password: secret

# Inline / Flow style
fruits: [apple, banana, cherry]
point: {x: 10, y: 20}

Top 10 errores YAML

#ErrorCausaSolución
1Error de tabulaciónTabs para indentarReemplazar con espacios
2Indentación inconsistenteMezcla de 2 y 4 espaciosUsar indentación consistente
3Espacio faltante`key:value`Agregar espacio después de `:`
4Caracteres especiales sin comillasValores con : o # sin comillasPoner entre comillas
5Coerción booleanayes/no como booleanosUsar comillas
6Strings con dos puntosURLs rotasCitar el valor completo
7Claves duplicadasMisma clave dos vecesEliminar duplicados
8Espacios al finalEspacios invisiblesConfigurar editor
9Error de indentación de listaItems no alineadosAlinear `-`
10Separador de documento faltanteMúltiples documentos sin `---`Agregar `---`

YAML vs JSON vs TOML

CaracterísticaYAMLJSONTOML
Comments# supportNone# support
Multi-line strings| and >\\n only""" triple quotes
Data typesRich (dates, etc.)Basic (6 types)Rich (dates, etc.)
ReadabilityHighMediumHigh
Machine parsingComplexSimpleMedium
Best forConfig filesAPIs, data exchangeApp config

Mejores prácticas

  • Usar linter YAML en CI/CD
  • Mostrar espacios en el editor
  • Usar 2 espacios
  • Citar strings ambiguos
  • Usar validación de esquema
  • Mantener archivos pequeños y modulares

FAQ

¿Se pueden usar tabulaciones en YAML?

No. YAML prohíbe estrictamente las tabulaciones para la indentación.

¿Diferencia entre comillas simples y dobles?

Simples: string literal. Dobles: permiten secuencias de escape.

¿Cómo representar null?

`null`, `~`, o valor vacío.

¿Por qué YAML trata "NO" como false?

YAML 1.1 trata yes/no como booleanos. YAML 1.2 solo reconoce true/false.

𝕏 Twitterin LinkedIn
¿Fue útil?

Mantente actualizado

Recibe consejos de desarrollo y nuevas herramientas.

Sin spam. Cancela cuando quieras.

Prueba estas herramientas relacionadas

YMLYAML Validator & FormatterY{}JSON ↔ YAML ConverterTYTOML ↔ YAML🐳Docker Compose Generator

Artículos relacionados

JSON a Dart: Guía completa de clases modelo Flutter

Aprende a convertir JSON a clases Dart para Flutter. fromJson, toJson, null safety y json_serializable.

Validación YAML Docker Compose: 10 errores de sintaxis comunes y cómo corregirlos

Deja de perder tiempo con errores YAML de Docker Compose. Aprende a identificar y corregir los 10 errores más comunes.

Validación JSON Schema: Tipos, herramientas y mejores prácticas

Todo sobre la validación JSON Schema: desde tipos básicos hasta patrones avanzados, bibliotecas de validación e integración con TypeScript y APIs.

Guia del Convertidor JSON-YAML Online: Sintaxis, Herramientas y Mejores Practicas

Guia completa de conversion JSON-YAML. Sintaxis, js-yaml, PyYAML, yq CLI, Kubernetes, Docker Compose, trampas YAML y seguridad.