¿Que es YAML?

¿Que es YAML? . Cada día vemos mas sitios en donde se puede usar YAML (YAML no es un lenguaje de Marcado) . Es un lenguaje que se encarga de simplificar los conceptos de configuración eliminando marcado y simbolos como < o > y las clásicas llaves {} definiendo un formato más neutro y legible para el día a día . Vamos a ver varios ejemplos sencillos de YAML .

---
#comentario
#estructura clave valor
usuario:
  nombre: pedro
  apellidos: gomez
  edad: 20

Este es un fichero relativamente sencillo de YAML como vemos no usa ningún marcado especial y usa espacios para definir anidamiento entre elementos . En este caso tenemos un usuario que contiene tres propiedad clave: valor en donde se define el nombre apellidos y edad de este. Ademas contiene (—) guiones que definen el inicio del documento así como # que añaden comentarios.

Una vez que tenemos la primera estructura podemos anidar otros elementos como puede ser la dirección .Todos irán anidados a través del usa de espacios y se separarán los pares de clave valor a traves de dos puntos (:) .

usuario:
  nombre: pedro
  apellidos: gomez
  edad: 20
  direccion:
    calle: micalle
    numero: minumero

Flexibilidad y Listas

YAML es bastante flexible y nos permite también ubicar listas de elementos que comparten el mismo nivel de forma rápida y sencilla

usuario:
  nombre: pedro
  apellidos: gomez
  edad: 20
  direccion:
    calle: micalle
    numero: minumero
    cursos:
      - Java
      - PHP
      - WordPress

Flexibilidad

La flexibilidad del lenguaje es alta ya que las propias listas pueden por ejemplo contener parejas de clave valor :

usuario:
  nombre: pedro
  apellidos: gomez
  edad: 20
  direccion:
    calle: micalle
    numero: minumero
  cursos:
    - Java:
      nivel: 1
      duracion: 30
    - PHP:
      nivel: 2
      duracion: 30
    - WordPress:
      nivel: 3
      duracion: 20

En este caso tenemos un usuario que contiene sus datos que contiene anidada una dirección .

Spring Boot YAML

Podemos configurar nuestras aplicaciones de Spring Boot con YAML y evitar el uso de properties.

spring:
    datasource:
        password: password
        url: jdbc:h2:dev
        username: SA

Otra de las tecnologías donde YAML brilla es en Kubernetes y sus ficheros de configuración 🙂

apiVersion: v1
kind: Pod
metadata:
  name: mi-nginx
  labels:
   tipo: web
spec:
  containers:
    - name: nginx
      image: nginx

Este es un ejemplo de como desplegar un contenedor nginx dentro de Kubernetes

Otros artículos relacionados