
GraphQL SDL: validar y formatear un esquema en línea
Errores de sintaxis SDL, review de esquema y formateo antes del merge — complemento al beautify GraphQL existente.
¿Por qué validar el SDL GraphQL antes de hacer merge?
Un esquema que no parsea bloquea la generación de clientes, hace fallar el arranque del servidor GraphQL y convierte la relectura en adivinanzas. Las causas habituales — llave faltante, tipo desconocido, raíz Query olvidada — se esconden en un diff SDL de 400 líneas. El validador SDL GraphQL FastMinify ejecuta buildSchema de GraphQL.js en el navegador: pega el documento de esquema y obtén un veredicto válido/inválido con línea y columna cuando GraphQL.js las proporciona. El formateo sigue en Beautify GraphQL (Prettier). No existe un slug format-graphql. El resto del cluster está en el hub de herramientas API. Si también mantienes contratos REST, encadena con la guía de validación OpenAPI.
Límites honestos y hábitos que se sostienen en review
Un veredicto válido significa que buildSchema de GraphQL.js aceptó el SDL pegado. No es una prueba de que la API se comporte correctamente en producción.
.graphql remotos, includes o URL GitLa herramienta del navegador sirve el bucle rápido antes de git push. Los equipos siguen lanzando GraphQL.js, graphql-eslint o rover en CI como gate de merge.
Query por defecto o un schema { query: … } personalizadoLa mayoría de los incidentes SDL son restos de rename y raíces faltantes, no funcionalidades GraphQL exóticas.
SDL de esquema vs. queries: dos documentos, dos herramientas
El Schema Definition Language (SDL) describe tipos, campos y raíces. Es el contrato que tus resolvers deben honrar — no una query ejecutable. FastMinify valida ese contrato con buildSchema de GraphQL.js, sin hablar con un servidor en vivo.
Query, Mutation y Subscription cuando esos tipos existen.graphql vía URLUn documento de operación (query, mutation, subscription, fragment) no es SDL de esquema. Pegarlo en el validador hace fallar buildSchema. Formatea esos documentos con Beautify GraphQL.
buildSchema, sin ejecución de queriesGraphQL.js suele exigir un tipo raíz Query, salvo si tu definición schema nombra otro tipo de query. Un documento con solo type User { … } sin raíz query falla la mayoría de las veces — es esperado, no un bug de FastMinify.
type Query { hello: String }schema { query: RootQuery } más type RootQuery { … }Validar responde a «¿este SDL de esquema lo acepta GraphQL.js?». Embellecer responde a «¿este GraphQL es legible?». La indentación nunca corrige un tipo desconocido.
buildSchema — válido o inválido, incidencias con línea/columna si están disponiblestabWidth 2 o 4, tabulaciones, printWidth 80 / 100 / 120Validar y luego formatear: un workflow concreto
Abre el validador GraphQL, pega un solo documento de esquema (máx. 512 KiB UTF-8) y espera el veredicto (debounce). El panel muestra Válido o Inválido, el primer error con línea y columna si se conocen, una acción de copiar el error, y las stats del esquema si el parse tiene éxito.
El embellecedor GraphQL hace pretty-print de esquemas y operaciones con Prettier. Útil para diffs de review — no sustituye validate. Opciones: 2 o 4 espacios o tabulaciones, más el ancho de impresión. Todos los formateadores están en el hub de herramientas beautify.
Un compañero renombró Pet a Animal pero dejó pet(id: ID!): Pet en Query. La CI o el servidor fallan, con poco contexto en el overlay de GitHub.
Paso 1: pegar el esquema en validate-graphql
Abre validate-graphql. Un veredicto inválido con Unknown type "Pet" (y una línea si está disponible) señala el campo obsoleto.
Paso 2: corregir el nombre de tipo o restaurar el tipo
Renombra el tipo de retorno del campo a Animal o vuelve a añadir type Pet. Vuelve a pegar hasta que el panel muestre un esquema válido.
Paso 3: embellecer y hacer commit
Pasa el SDL corregido por beautify-graphql, copia o descarga y actualiza la PR. Los reviewers leen tipos, no un blob de una línea.
Un esquema generado o de aspecto minificado llega al repositorio. Los reviewers no ven qué campos están en Query frente a Mutation.
Paso 1: embellecer primero si ni siquiera puedes leerlo
Pega en beautify-graphql. Prettier despliega selecciones y cuerpos de tipos. Este paso no demuestra que el esquema sea válido.
Paso 2: validar el documento formateado
Copia el SDL indentado en validate-graphql. Comprueba que la raíz Query existe y que cada tipo nombrado está definido.
Paso 3: leer las baldosas de stats
El número de tipos y de campos raíz ayuda a detectar una Query vacía o mutations perdidas. Luego haz commit del archivo formateado.
Conclusión
Valida el SDL GraphQL en el navegador con buildSchema y luego formatea con Prettier — en local, sin enviar el esquema a ningún sitio. Este bucle atrapa tipos desconocidos y raíces Query faltantes antes de la CI o de un gateway. No sustituye un servidor en vivo, la introspección ni el compose federation. Para contratos REST, quédate en el hub API; para queries legibles, quédate en Beautify GraphQL.
Artículos relacionados

YAML roto, `on` o `jobs` ausentes, steps vacíos: valida la estructura de tus workflows antes del push — y deja actionlint para la CI.

Reduce la factura OpenAI/Anthropic/Gemini: estima input/output, activa batch y caching en tus cálculos — tarifas verificadas, 100 % local.

RAG, agentes multi-turno, system prompts: calcula el % de ventana usada y el margen restante antes de enviar a la API.