DocumentosImágenesMediaHerramientas PDF

Convertir JSON a GraphQL Schema

Genera esquemas GraphQL desde JSON automáticamente, en tu navegador.

Procesado en tu navegador

JSON a GraphQL Schema

Apollo Server compatible

Schema listo para usar en Apollo Server, GraphQL Yoga, Pothos, Nexus o cualquier implementación GraphQL.

100% privado

Tu JSON de API se procesa solo en tu navegador. Estructuras de datos sensibles nunca salen de tu dispositivo.

Types correctos

Detecta String, Int, Float, Boolean, ID. Objetos anidados generan types propios. Arrays como listas [Type].

Instantáneo

Schema GraphQL listo en milisegundos. Sin registro, sin esperas, sin límites.

Tres pasos, sin complicaciones

1

Pega tu JSON

Pega cualquier objeto JSON. La herramienta analiza la estructura y genera los types GraphQL correspondientes.

2

Schema GraphQL generado

Obtienes types GraphQL con todos los campos tipados correctamente: String, Int, Float, Boolean e ID. Los objetos anidados generan types propios.

3

Copia y usa en Apollo Server

Copia el schema y pégalo en tu servidor GraphQL (Apollo Server, GraphQL Yoga, Pothos) como punto de partida.

¿Tienes dudas?

GraphQL es un lenguaje de consulta para APIs desarrollado por Facebook (ahora Meta) en 2012 para uso interno y publicado como especificación open-source en 2015. Fue creado para resolver las limitaciones de REST en aplicaciones móviles: over-fetching (recibir más datos de los necesarios), under-fetching (necesitar múltiples requests), y la falta de un contrato tipado. La primera implementación fue en el cliente de Facebook para iOS. Hoy GraphQL es usado por GitHub, Twitter, Shopify, Airbnb, Pinterest y miles de empresas. La especificación es mantenida por la GraphQL Foundation (parte de la Linux Foundation).

En GraphQL, type define la estructura de los datos que el servidor puede retornar (en queries y mutations), mientras que input define la estructura de los datos que el cliente puede enviar (argumentos de mutations). Por ejemplo, type User { id: ID!, name: String!, email: String! } define el objeto User retornable, mientras que input CreateUserInput { name: String!, email: String! } define los campos que acepta una mutation createUser. Los types pueden tener resolvers que calculan campos dinámicamente; los inputs son simples contenedores de datos. Esta herramienta genera types para modelar respuestas JSON existentes.

GraphQL define 5 scalar types primitivos en la especificación: String (texto UTF-8), Int (entero de 32 bits con signo), Float (número decimal de doble precisión), Boolean (true/false), e ID (identificador único, representado como String o Int). Los servidores GraphQL pueden definir custom scalars adicionales: Date, DateTime, URL, Email, JSON, UUID, etc. Por ejemplo, el paquete graphql-scalars (para Node.js) ofrece más de 50 scalars personalizados. Esta herramienta usa los 5 scalars estándar para máxima compatibilidad.

En GraphQL, cada objeto anidado en el JSON se convierte en un type separado. Si el JSON tiene {"order": {"product": {"id": 1, "name": "Widget"}}}, se generan: type RootType { order: Order }, type Order { product: Product }, type Product { id: Int, name: String }. Esto refleja la naturaleza del schema GraphQL: todos los tipos son nombrados y reutilizables. Un mismo type Product podría aparecer en múltiples types padre. Los arrays de objetos se representan como [Product] (lista de Product).

Un resolver es una función que sabe cómo obtener los datos para un campo específico del schema. En Apollo Server, cada campo de cada type puede tener un resolver. Si no se define uno, Apollo usa el DefaultFieldResolver que simplemente retorna la propiedad con el mismo nombre del objeto padre. Los resolvers permiten que los datos vengan de múltiples fuentes: base de datos, otra API, caché, o cálculo en tiempo real. El schema GraphQL (generado por esta herramienta) define el contrato; los resolvers implementan cómo cumplirlo.

La adopción de GraphQL, Apollo Server, schema-first vs code-first, y la migración de REST a GraphQL

GraphQL fue open-sourced por Facebook en julio de 2015 y rápidamente generó un ecosistema vibrante. Apollo GraphQL (fundada en 2016) creó Apollo Server y Apollo Client, convirtiéndose en la implementación de referencia. En 2018, GitHub migró su API pública de REST v3 a GraphQL v4, un hito que validó GraphQL para APIs de producción a gran escala. La GraphQL Foundation se formó en 2019 bajo la Linux Foundation para estandarizar la especificación. En 2024, GraphQL es la segunda especificación de API más usada después de REST, presente en la mayoría de startups y muchas empresas Fortune 500.

Existen dos enfoques principales para construir APIs GraphQL: schema-first y code-first. En schema-first, defines el schema SDL (Schema Definition Language) primero y luego implementas los resolvers. Es el enfoque original y más transparente: el contrato de la API es visible y editable como texto. En code-first, defines el schema mediante código (TypeScript en el caso de Nexus o Pothos): los types se definen como objetos JavaScript/TypeScript y el schema SDL se genera automáticamente. Code-first es preferido cuando se busca type-safety end-to-end con TypeScript. Esta herramienta genera SDL (schema-first).

La migración de REST a GraphQL es un proceso gradual que muchas empresas abordan con el patrón BFF (Backend For Frontend): en lugar de reemplazar las APIs REST existentes, se añade una capa GraphQL que agrega múltiples endpoints REST. Este patrón, popularizado por Netflix y Airbnb, permite adoptar GraphQL incrementalmente sin disrumpir los servicios existentes. GraphQL Federation (Apollo) va más allá: permite componer múltiples servicios GraphQL en un grafo unificado, habilitando arquitecturas de supergraph donde cada microservicio expone su propio subgraph.