Además del mundo DevOps, YAML es ampliamente utilizado como formato de configuración o fuente de datos en distintos lenguajes y frameworks. A continuación, vemos tres casos comunes: Spring Boot (Java), Python con PyYAML y Node.js con js-yaml.
Spring Boot soporta application.properties
o application.yml
. El formato YAML resulta más legible gracias a su estructura jerárquica.
Ejemplo application.yml
:
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/miappdb
username: root
password: 1234
jpa:
hibernate:
ddl-auto: update
show-sql: true
logging:
level:
org.springframework: INFO
com.miapp: DEBUG
Claves: server.port
configura el puerto; spring.datasource
define la conexión a la base; spring.jpa
controla Hibernate; logging.level
ajusta niveles de log por paquete. Es habitual crear perfiles como application-dev.yml
o application-prod.yml
.
Instalación: pip install pyyaml
Archivo config.yml
:
app:
nombre: Mi Aplicación
version: 1.0
debug: true
database:
host: localhost
port: 5432
user: admin
password: secreto
Lectura en Python:
import yaml
with open("config.yml", "r", encoding="utf-8") as f:
config = yaml.safe_load(f)
print("Nombre de la app:", config["app"]["nombre"])
print("Modo debug:", config["app"]["debug"])
print("Base de datos:", config["database"]["host"], config["database"]["port"])
yaml.safe_load()
convierte el YAML en un diccionario. Para escribir YAML:
data = {
"usuarios": [
{"nombre": "Ana", "rol": "admin"},
{"nombre": "Marcos", "rol": "editor"}
]
}
with open("usuarios.yml", "w", encoding="utf-8") as f:
yaml.dump(data, f, allow_unicode=True)
Instalación: npm install js-yaml
Archivo config.yml
:
server:
port: 3000
auth:
enabled: true
secret: "clave-secreta"
Lectura en Node.js:
const fs = require("fs");
const yaml = require("js-yaml");
try {
const fileContents = fs.readFileSync("config.yml", "utf8");
const config = yaml.load(fileContents);
console.log("Servidor en puerto:", config.server.port);
console.log("Auth habilitado:", config.auth.enabled);
} catch (e) {
console.error("Error al leer YAML:", e);
}
Para generar YAML:
const usuarios = [
{ nombre: "Ana", rol: "admin" },
{ nombre: "Marcos", rol: "editor" }
];
const yamlString = yaml.dump({ usuarios });
fs.writeFileSync("usuarios.yml", yamlString, "utf8");
Lenguaje / Framework | Librería / Soporte | Uso principal |
---|---|---|
Spring Boot (Java) | Soporte nativo con application.yml |
Configuración empresarial |
Python | PyYAML (pip install pyyaml ) |
Lectura/escritura de configuraciones |
Node.js | js-yaml (npm install js-yaml ) |
Configuraciones en apps web o CLI |
En síntesis, YAML no es solo clave en DevOps: frameworks como Spring Boot y librerías como PyYAML y js-yaml permiten manejar configuraciones limpias y portables en distintas plataformas.