Entrada

Salida

¿Qué es la herramienta Muestra GraphQL a JSON?

Hacer un mock de una API GraphQL en tu suite de pruebas suele significar escribir datos falsos a mano para cada tipo — aburrido, frágil, y el esquema se aleja de tus fixtures en uno o dos sprints. Esta página lee tu lenguaje de definición de esquemas GraphQL y emite un documento JSON que coincide con él. Pega tu SDL a la izquierda y el panel derecho te devuelve un objeto JSON poblado: cada campo del tipo Query rellenado, listas rellenadas con dos elementos, enums establecidos en su primer valor y escalares personalizados como DateTime o URL mapeados a valores por defecto sensatos.

No hay ninguna dependencia de parser cargada en la página — el caminante de SDL está escrito a mano, ~600 líneas, y cubre todas las construcciones que aparecen en un esquema real: type, interface, union, enum, input, scalar, modificadores de lista y not-null, y tipos auto-referenciales. La salida es JSON plano según RFC 8259, indentado con dos espacios, listo para soltar en un mock de fetch o una respuesta de ejemplo de Postman. Los campos llamados email, name, phone, currency o status reciben valores de muestra que encajan; todo lo demás cae a un genérico "sample text".

Todo ocurre en tu navegador. Tu esquema nunca sale de la página, no se hace ninguna llamada de red y la conversión es instantánea.

Cómo usar la herramienta Muestra GraphQL a JSON

Tres pasos rápidos. Los botones descritos abajo son los botones reales de esta página.

1

Pega, sube o carga una muestra

Pega un esquema GraphQL en el panel izquierdo de Entrada — la conversión es automática aproximadamente un tercio de segundo después de que dejes de escribir, así que no hay botón Convertir. Pulsa Cargar para un archivo .graphql o .gql, o pulsa Muestra para cargar un esquema realista de pedidos de e-commerce. Una entrada típica tiene este aspecto:

type Query { order(id: ID!): Order } type Order { id: ID! customer: Customer! items: [OrderItem!]! total: Money! status: OrderStatus! placedAt: DateTime! }

Funcionan tanto los esquemas de estilo servidor (con type Query { ... }) como los archivos de tipos independientes. El caminante elige Query como raíz si existe, si no, el primer tipo objeto. Las formas aceptadas coinciden con lo que herramientas como graphql-js parsean al arrancar.

2

Lee la salida JSON

El panel derecho de Salida renderiza la muestra JSON con indentación de dos espacios. Los tipos objeto se vuelven objetos. Las listas se vuelven arrays de dos elementos. Los enums se vuelven su primer valor como cadena. Los escalares personalizados reciben valores por defecto sensatos — DateTime se convierte en un timestamp ISO-8601, URL se convierte en "https://example.com/...", JSON se convierte en {}. Los tipos auto-referenciales (type Person { friends: [Person!]! }) se limitan a profundidad 4 y se truncan con null para que la página nunca se cuelgue.

3

Copia o descarga

Pulsa Copiar para coger el JSON para un archivo de fixture, un servidor mock o un stub de fetch. Pulsa Descargar para guardarlo como sample.json. El botón limpiar del panel de entrada te devuelve a un estado vacío. La conversión ocurre enteramente del lado cliente — tu esquema nunca sale de la página.

Cuándo usarías esto realmente

Fixtures de servidor GraphQL mock

Estás levantando un backend mock con json-graphql-server o un mock de Apollo Server y necesitas un archivo JSON inicial con la forma de tu esquema. Pega el SDL, copia la salida y ya tienes el 80% del camino hecho — ajusta nombres e IDs, despliega el fixture.

Respuestas de ejemplo en Postman / Insomnia

Documentar un endpoint GraphQL en Postman o Insomnia significa rellenar un cuerpo de respuesta de ejemplo para cada operación. Genera la forma JSON desde el tipo, pégala en el ejemplo, edita los valores para que coincidan con el caso de prueba. Mejor que escribir a mano objetos anidados desde cero.

Borrador de tipos en frontend

Cuando el backend lanza un nuevo tipo GraphQL, el frontend a menudo necesita un payload de muestra para conectar la UI antes de que el endpoint sea real. Convierte el esquema a JSON, suéltalo en un fixture y construye los componentes contra el fixture. Cambia a datos en vivo cuando la API esté lista.

Exploración de esquemas

Leer un SDL de 300 líneas está bien; ver cómo es una respuesta real es más rápido. La muestra JSON hace concreto el esquema — puedes ver inmediatamente qué campos están anidados, cuáles son arrays y dónde viven los enums. Útil como ayuda de onboarding para ingenieros nuevos en un servicio.

Preguntas frecuentes

¿Ejecuta la query contra un servidor real?

No. La página solo genera un documento de muestra que se ajusta a la forma del esquema. No hay ninguna llamada de red. Si necesitas pegarle a un endpoint GraphQL real, usa GraphiQL o cualquier cliente GraphQL.

¿Por qué mi tipo auto-referencial se detiene tras unos pocos niveles?

Hay un límite de recursión a profundidad 4. Un esquema como type Person { friends: [Person!]! } generaría de otro modo un objeto anidado infinitamente. Pasado el límite el valor se vuelve null para que el JSON quede finito y bien imprimible.

¿Qué tipo raíz usa?

Busca type Query primero. Si falta, elige el primer tipo objeto definido en el esquema (saltando los tipos input). Puedes mover cualquier tipo arriba reordenando tu SDL.

¿Se gestionan los escalares personalizados?

Sí. Los comunes (DateTime, Date, Time, URL, Email, JSON, BigInt) tienen valores por defecto sensatos integrados. Cualquier otro cae a una cadena placeholder genérica. Si tu escalar debe mapearse a algo específico, edita la salida a mano — es solo JSON.

¿Es válido el JSON contra mi esquema?

Es válido en forma: cada campo requerido está rellenado, los tipos cuadran con su escalar/objeto/lista declarado, los enums usan un valor real de enum. No es semánticamente válido (el email no es un email real, el ID del pedido no es un ID real). Úsalo como punto de partida para fixtures, no como sustituto de tests.

¿Se envía mi esquema a un servidor?

No. La conversión se ejecuta enteramente en tu navegador. Nada se sube, nada se registra. Es seguro pegar esquemas internos o no publicados.

Otras herramientas de GraphQL y JSON

Generar una muestra es una parte del flujo de trabajo de GraphQL. Estas herramientas cubren el resto: