YAML: O Formato de Config Que Você Não Escapa
Docker Compose, GitHub Actions, Kubernetes, Ansible, pipelines CI/CD — todos usam YAML. Foi projetado para ser legível por humanos, mas sua sensibilidade a whitespace e tipagem implícita causam sessões intermináveis de debug.
Sintaxe Básica
# Pares chave-valor
name: João Silva
age: 30
email: joao@example.com
active: true
# Objetos aninhados (indentação = estrutura)
database:
host: localhost
port: 5432
name: myappListas (Arrays)
# Estilo bloco
frutas:
- maçã
- banana
- cereja
# Estilo inline
frutas: [maçã, banana, cereja]
# Lista de objetos
usuarios:
- name: Alice
role: admin
- name: Bob
role: userTipos de Dados
# Strings
name: João # string
quoted: "Olá, Mundo" # string explícita
# Números
count: 42 # inteiro
price: 19.99 # float
# Booleanos
active: true # também: True, yes, on
# Null
value: null # também: ~
# Datas
created: 2026-04-23 # data ISO 8601Strings Multiline
# Bloco literal (preserva newlines) — use |
description: |
Esta é a linha 1.
Esta é a linha 2.
# Bloco dobrado (newlines viram espaços) — use >
summary: >
Este é um parágrafo longo
que será dobrado em
uma única linha.Armadilhas do YAML
# ARMADILHA 1: Problema da Noruega
country: NO # Parseado como boolean false!
country: "NO" # String — sempre use aspas
# ARMADILHA 2: Números de versão
version: 3.10 # Parseado como float 3.1!
version: "3.10" # String
# ARMADILHA 3: Indentação deve ser espaços, nunca tabs
# ARMADILHA 4: Dois-pontos em valores
message: erro: não encontrado # Erro de parse!
message: "erro: não encontrado" # Com aspas — funcionaAnchors e Aliases (DRY)
defaults: &defaults
adapter: postgres
host: localhost
port: 5432
development:
<<: *defaults
database: myapp_dev
production:
<<: *defaults
host: prod-db.example.com
database: myapp_prodValide seu YAML: Formatador YAML — cole YAML, valide sintaxe, converta para JSON.