Converter JSON para Schema GraphQL Online
Gere schemas GraphQL a partir de JSON automaticamente, direto no seu navegador.
Para que serve
JSON para Schema GraphQL
Compatível com Apollo Server
Schema pronto para usar no Apollo Server, GraphQL Yoga, Pothos, Nexus ou qualquer implementação GraphQL.
100% privado
Seu JSON de API é processado apenas no seu navegador. Estruturas de dados sensíveis nunca saem do seu dispositivo.
Types corretos
Detecta String, Int, Float, Boolean, ID. Objetos aninhados geram seus próprios types. Arrays como listas [Type].
Instantâneo
Schema GraphQL pronto em milissegundos. Sem cadastro, sem espera, sem limites.
Como funciona
Três passos, sem complicação
Cole seu JSON
Cole qualquer objeto JSON. A ferramenta analisa a estrutura e gera os types GraphQL correspondentes.
Schema GraphQL gerado
Você recebe types GraphQL com todos os campos corretamente tipados: String, Int, Float, Boolean e ID. Objetos aninhados geram seus próprios types.
Copie e use no Apollo Server
Copie o schema e cole no seu servidor GraphQL (Apollo Server, GraphQL Yoga, Pothos) como ponto de partida.
Perguntas frequentes
Ficou com dúvidas?
GraphQL é uma linguagem de consulta para APIs desenvolvida pelo Facebook (agora Meta) em 2012 para uso interno e publicada como especificação open-source em 2015. Foi criada para resolver as limitações do REST em aplicações móveis: over-fetching (receber mais dados do que o necessário), under-fetching (precisar de múltiplas requisições) e a falta de um contrato tipado. A primeira implementação foi no cliente iOS do Facebook. Hoje o GraphQL é usado pelo GitHub, Twitter, Shopify, Airbnb, Pinterest e milhares de empresas. A especificação é mantida pela GraphQL Foundation (parte da Linux Foundation).
No GraphQL, type define a estrutura dos dados que o servidor pode retornar (em queries e mutations), enquanto input define a estrutura dos dados que o cliente pode enviar (argumentos de mutations). Por exemplo, type User { id: ID!, name: String!, email: String! } define o objeto User retornável, enquanto input CreateUserInput { name: String!, email: String! } define os campos aceitos por uma mutation createUser. Os types podem ter resolvers que calculam campos dinamicamente; os inputs são simples contêineres de dados. Esta ferramenta gera types para modelar respostas JSON existentes.
O GraphQL define 5 scalar types primitivos na especificação: String (texto UTF-8), Int (inteiro de 32 bits com sinal), Float (decimal de precisão dupla), Boolean (true/false) e ID (identificador único, representado como String ou Int). Servidores GraphQL podem definir scalars personalizados adicionais: Date, DateTime, URL, Email, JSON, UUID, etc. Por exemplo, o pacote graphql-scalars (para Node.js) oferece mais de 50 scalars personalizados. Esta ferramenta usa os 5 scalars padrão para máxima compatibilidade.
No GraphQL, cada objeto aninhado no JSON se torna um type separado. Se o JSON tiver {order: {product: {id: 1, name: Widget}}}, são gerados: type RootType { order: Order }, type Order { product: Product }, type Product { id: Int, name: String }. Isso reflete a natureza do schema GraphQL: todos os types são nomeados e reutilizáveis. O mesmo type Product poderia aparecer em múltiplos types pai. Arrays de objetos são representados como [Product] (lista de Product).
Um resolver é uma função que sabe como buscar os dados para um campo específico do schema. No Apollo Server, cada campo de cada type pode ter um resolver. Se nenhum for definido, o Apollo usa o DefaultFieldResolver, que simplesmente retorna a propriedade com o mesmo nome do objeto pai. Os resolvers permitem que os dados venham de múltiplas fontes: banco de dados, outra API, cache ou cálculo em tempo real. O schema GraphQL (gerado por esta ferramenta) define o contrato; os resolvers implementam como cumpri-lo.
Adoção do GraphQL, Apollo Server, schema-first vs code-first e migração de REST para GraphQL
O GraphQL foi tornado open-source pelo Facebook em julho de 2015 e rapidamente gerou um ecossistema vibrante. A Apollo GraphQL (fundada em 2016) criou o Apollo Server e o Apollo Client, tornando-se a implementação de referência. Em 2018, o GitHub migrou sua API pública do REST v3 para o GraphQL v4, um marco que validou o GraphQL para APIs de produção em grande escala. A GraphQL Foundation foi formada em 2019 sob a Linux Foundation para padronizar a especificação. Em 2024, o GraphQL é a segunda especificação de API mais usada depois do REST, presente na maioria das startups e em muitas empresas da Fortune 500.
Existem duas abordagens principais para construir APIs GraphQL: schema-first e code-first. No schema-first, você define o schema SDL (Schema Definition Language) primeiro e depois implementa os resolvers. Essa é a abordagem original e mais transparente: o contrato da API é visível e editável como texto. No code-first, você define o schema por meio de código (TypeScript no caso do Nexus ou Pothos): os types são definidos como objetos JavaScript/TypeScript e o schema SDL é gerado automaticamente. O code-first é preferido quando se busca type-safety de ponta a ponta com TypeScript. Esta ferramenta gera SDL (schema-first).
A migração de REST para GraphQL é um processo gradual que muitas empresas abordam com o padrão BFF (Backend For Frontend): em vez de substituir as APIs REST existentes, adiciona-se uma camada GraphQL que agrega múltiplos endpoints REST. Esse padrão, popularizado pelo Netflix e pelo Airbnb, permite adotar o GraphQL de forma incremental sem interromper os serviços existentes. O GraphQL Federation (Apollo) vai ainda mais longe: permite compor múltiplos serviços GraphQL em um grafo unificado, possibilitando arquiteturas supergraph onde cada microsserviço expõe seu próprio subgraph.