Comprobador de indentación y sintaxis YAML con líneas
Detecte los fallos de estructura que rompen un archivo YAML: en la muestra, port repetido en la línea 4 tras la línea 3 y un tabulador en la línea 5 dan 2 hallazgos, cada uno con su línea y una explicación clara. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- service: name: api port: 8080 port: 9090 debug: true
- Número de errores
- 2
Este comprobador de indentación y sintaxis YAML detecta los pequeños errores estructurales que vuelven poco fiables los archivos de configuración: tabulaciones ocultas al inicio, cambios inesperados en la profundidad de indentación y claves repetidas dentro del mismo mapa. Cada hallazgo incluye la línea de origen para que usted pueda ir directamente al ajuste defectuoso. Además, rechaza el texto que no puede interpretarse como YAML, diferenciando una entrada mal formada de un documento válido que solo contiene advertencias de análisis.
Consulte un informe específico en vez de descifrar mensajes del analizador
Pegue el documento YAML completo en el campo de texto y ejecute la comprobación. El resultado indica si el documento pasó, muestra la cantidad de hallazgos y enumera cada problema con un número de línea comenzando en uno, un tipo estable y una explicación. Este formato compacto sirve tanto para revisar un archivo de despliegue como para comprobar mediante un script una configuración generada.
El comprobador se centra en tres riesgos estructurales frecuentes: detecta tabulaciones en el espacio inicial, pues distintos editores pueden mostrarlas con anchuras diferentes; identifica cambios de indentación que no respetan la estructura establecida por los nodos superiores; y registra las claves por ámbito, de modo que una clave puede aparecer en objetos distintos, pero se informa si se repite dentro del mismo objeto. Los comentarios y las líneas vacías no alteran las referencias.
Una respuesta limpia incluye una lista de errores vacía, sin valores de relleno, lo cual facilita usarla como control satisfactorio en compilaciones o flujos previos a una confirmación de cambios.
Distinga entre advertencias de análisis y entradas no válidas
Una advertencia describe texto que todavía puede examinarse con utilidad aunque su estructura resulte arriesgada. Por ejemplo, una tabulación en la indentación o una clave duplicada produce un resultado normal con la línea pertinente. Un fallo de análisis es diferente: el documento está tan incompleto o mal formado que no puede continuar un análisis estructural fiable.
Las comillas sin cerrar, los delimitadores de colecciones de flujo sin pareja, las claves vacías o una línea simple donde se requiere un mapa o una secuencia provocan un error de entrada no válida. Separar ambos resultados resulta práctico en la automatización. Su integración puede mostrar de una vez todos los hallazgos recuperables, mientras que un fallo de análisis puede detener el proceso y solicitar que se repare el origen.
La comprobación es determinista y no reescribe el documento, no elige un valor duplicado ni adivina la anidación pretendida. En configuración, modificar silenciosamente el significado suele ser peor que rechazar el archivo. Corrija primero el fallo de análisis más temprano, vuelva a ejecutar la comprobación y resuelva después las advertencias numeradas restantes.
Utilice el comprobador con seguridad en editores y procesos de entrega
El servicio está pensado para comprobaciones rápidas antes de que YAML llegue a una herramienta de despliegue, un publicador de paquetes, una tarea de integración continua o el arranque de una aplicación. Envíe el texto fuente exacto y no un objeto ya analizado, porque muchos analizadores eliminan la indentación y las claves duplicadas al convertir YAML en datos comunes. Conserve los finales de línea y los comentarios si desea que las posiciones coincidan con su editor.
Un proceso práctico puede ejecutar esta revisión después de aplicar plantillas y antes de insertar secretos, y fallar si valid es false o si la solicitud devuelve un error de entrada no válida. La respuesta es estable para texto idéntico: no usa red, azar, reloj ni estado del entorno. También aplica límites de tamaño y líneas para evitar trabajo ilimitado.
Se trata de un análisis estructural básico, no de un validador de esquemas. No sabe si un campo de Kubernetes, una propiedad de flujo o una opción está permitida. Combínelo con el validador específico de su sistema cuando importe la semántica.
Qué puede hacer con ella
Comprobar la configuración de despliegue
Detecte anidaciones desplazadas, tabulaciones y ajustes repetidos antes de que la herramienta de despliegue interprete el archivo.
Validar YAML generado
Revise la salida de plantillas durante una compilación y obtenga líneas útiles cuando la generación produzca una estructura incorrecta.
Revisar cambios de configuración
Añada una comprobación estructural rápida a la revisión de código para que los errores de espacios no se oculten en diferencias extensas.
Preguntas frecuentes
¿Cuánto cuesta una comprobación?
La versión del navegador puede utilizarse directamente en esta página.
¿Modifica el comprobador mi YAML?
No. Solo comunica hallazgos; nunca reescribe la indentación, elimina claves ni decide entre valores duplicados.
¿Se permiten claves duplicadas en objetos distintos?
Sí. Solo se informa de una clave cuando se repite en el mismo ámbito de mapa; puede aparecer en objetos anidados separados.
¿Por qué se señalan las tabulaciones si el archivo parece alineado?
Los editores pueden mostrar las tabulaciones con anchuras diferentes, por lo que YAML puede cambiar de anidación al pasar entre herramientas.
¿Es un validador de esquemas de Kubernetes o de flujos?
No. Comprueba la estructura general y la sintaxis básica de YAML, no nombres de campos, tipos o políticas específicos de un producto.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev2/yaml-lint-basic \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"service:\n name: api\n ports:\n - 8080\n - 8081"}'const res = await fetch("https://api.kit.forhosting.com/dev2/yaml-lint-basic", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "service:\n name: api\n ports:\n - 8080\n - 8081"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/yaml-lint-basic",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "service:\n name: api\n ports:\n - 8080\n - 8081"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/yaml-lint-basic", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"service:\\n name: api\\n ports:\\n - 8080\\n - 8081"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"service:\n name: api\n ports:\n - 8080\n - 8081"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/yaml-lint-basic", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "service:\n name: api\n ports:\n - 8080\n - 8081"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.yaml_lint_basic",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |