PureTools

Sintaxe YAML: Referência Rápida para Desenvolvedores

PureTools Team· 7 min de leitura
Sintaxe YAML: Referência Rápida para Desenvolvedores

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

Listas (Arrays)

# Estilo bloco
frutas:
  - maçã
  - banana
  - cereja

# Estilo inline
frutas: [maçã, banana, cereja]

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

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

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

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

Valide seu YAML: Formatador YAML — cole YAML, valide sintaxe, converta para JSON.