ForHosting KIT · Utilidades de desarrollo

Extraer nombres y tipos de variables GraphQL

Este extractor de variables GraphQL lee un documento ejecutable, comprueba su sintaxis y enumera las variables declaradas en cada consulta, mutación o suscripción.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Conserva la clase y el nombre opcional de la operación, además del nombre y la notación exacta del tipo de cada variable, incluidas listas y marcas de no nulo. Resulta útil para crear formularios, revisar operaciones cliente, documentar integraciones o comprobar consultas antes de ejecutarlas.

Distinga declaraciones de usos

Las variables GraphQL aparecen como declaraciones, por ejemplo <code>$id: ID!</code>, junto al nombre de una operación, y como referencias, por ejemplo <code>user(id: $id)</code>, dentro de la selección. Esta capacidad solo devuelve las declaraciones. Las agrupa bajo la consulta, mutación o suscripción correspondiente, por lo que dos operaciones pueden declarar el mismo nombre sin mezclarse. La notación del tipo se conserva: <code>String</code>, <code>ID!</code> o <code>[ID!]!</code>. Los valores predeterminados y las directivas se analizan para comprobar la sintaxis, pero no se incluyen. Los fragmentos también se validan, aunque no producen entradas porque no declaran variables de operación. Una consulta abreviada anónima aparece como una operación de consulta sin nombre y con una lista vacía de variables.

Valide la sintaxis de forma determinista

Una expresión regular deja de ser fiable cuando aparecen comentarios, cadenas, cadenas de bloque, listas anidadas, objetos predeterminados, directivas, fragmentos, alias u operaciones múltiples. Este analizador tokeniza el documento completo y sigue la gramática ejecutable de GraphQL. Rechaza cadenas sin cerrar, números inválidos, caracteres inesperados, selecciones vacías y definiciones incompletas. Por eso puede utilizarse como control temprano en una compilación. No consulta la red ni un esquema. En consecuencia, no determina si un campo existe en su servidor, si el tipo de una variable coincide con un argumento o si se cumplen reglas dependientes del esquema. Use esta capacidad para sintaxis y descubrimiento de declaraciones, y añada después una validación contra el esquema cuando disponga de él.

Integre el resultado estructurado

La respuesta contiene el array <code>operations</code> en el orden del documento y el total <code>variable_count</code>. Cada operación indica su clase, incluye el nombre cuando existe y aporta un array <code>variables</code> con registros <code>name</code> y <code>type</code>. Esta forma estable sirve para generar editores, comparar operaciones versionadas, crear tablas de documentación o detectar nuevas entradas obligatorias. Mantener separadas las operaciones evita falsos conflictos. La entrada está limitada a 200,000 caracteres para acotar el análisis. No se ejecuta ninguna consulta ni se solicitan esquemas, cabeceras, credenciales o valores. Puede pegar el documento en el navegador o llamar a la API por $0.002 por elemento. Los errores señalan una posición aproximada del problema.

Crear un formulario de variables

Lea las declaraciones y genere las entradas correctas antes de solicitar valores de ejecución.

Revisar consultas persistidas

Compare nombres y tipos GraphQL exactos cuando cambie una operación versionada.

Documentar operaciones cliente

Convierta un documento con varias operaciones en un inventario agrupado por clase.

¿Ejecuta la consulta GraphQL?

No. Analiza el documento localmente y nunca contacta con un endpoint GraphQL.

¿Incluye los usos de variables?

No. Solo devuelve variables declaradas; las referencias en campos, argumentos o directivas no cuentan como declaraciones.

¿Conserva las marcas de lista y no nulo?

Sí. Tipos como ID!, [String!] y [ID!]! mantienen su notación GraphQL completa.

¿Valida campos contra mi esquema?

No. Valida la sintaxis sin esquema; la existencia de campos y la compatibilidad requieren otra etapa.

¿Admite varias operaciones y fragmentos?

Sí. Devuelve las operaciones en orden y comprueba los fragmentos, que no añaden declaraciones.

¿Cuánto cuesta una llamada API?

Cada elemento cuesta $0.002. La versión web ejecuta localmente el mismo analizador.

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.

POSThttps://api.kit.forhosting.com/dev/graphql-query-variables-extract

¿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.

curl -X POST https://api.kit.forhosting.com/dev/graphql-query-variables-extract \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"query FindUser($id: ID!, $withPosts: Boolean = false) { user(id: $id) { name posts @include(if: $withPosts) { title } } }"}'
{
  "query": "query FindUser($id: ID!, $withPosts: Boolean = false) { user(id: $id) { name posts @include(if: $withPosts) { title } } }"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.graphql_query_variables_extract",
  "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.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

max_chars200000
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →