JSON para schema GraphQL (SDL)
Gere object types GraphQL em SDL a partir de JSON: Int ou Float, marcadores de não nulo, tipos de lista e tipos aninhados inferidos do seu exemplo. Grátis, no navegador.
Campos não nulos recebem "!". Inteiros acima de 32 bits viram Float; valores mistos ou só null usam um escalar JSON personalizado.
Executa totalmente no seu navegador. Seus dados nunca são enviados.
Ferramentas Relacionadas
Ver TodasO que é JSON para GraphQL?
Gere declarações type na linguagem de definição de schema (SDL) do GraphQL a partir de um exemplo JSON. Valores obrigatórios recebem o marcador de não nulo !, arrays viram tipos de lista e objetos aninhados viram object types separados.
Como usar JSON para GraphQL
- Cole um exemplo JSON em Entrada JSON (ou clique em Carregar exemplo / Abrir arquivo).
- Defina o Nome do tipo raiz (padrão
Root). - Copie o código GraphQL gerado ou clique em Baixar para salvá-lo como arquivo.
Exemplo
{"id":1,"name":"A","tags":["x"]} type Root {
id: Int!
name: String!
tags: [String!]!
} Quando usar JSON para GraphQL
Use-o para esboçar o schema de uma API GraphQL que envolve um serviço JSON/REST existente. Ele gera apenas tipos de saída; input types, queries, mutations e resolvers ainda precisam ser escritos.
Como funciona JSON para GraphQL
O exemplo é percorrido recursivamente e cada posição acumula os tipos que encontrou. Arrays de objetos são mesclados em um único tipo: uma chave ausente em alguns elementos vira opcional, uma chave que é null em algum lugar vira anulável, inteiros misturados com decimais viram um tipo de ponto flutuante e qualquer outra mistura de tipos recai em um tipo dinâmico. Objetos aninhados viram tipos nomeados próprios (PascalCase da chave, com chaves de array no singular: orders → Order), com sufixos numéricos quando os nomes colidem. A saída GraphQL mapeia inteiros para Int (ou Float quando um valor passa de 32 bits, já que o Int do GraphQL tem 32 bits), decimais para Float, strings para String e booleanos para Boolean. Valores nulos ou ausentes no exemplo são anuláveis (sem !). Valores mistos ou sempre nulos usam um scalar personalizado JSON, declarado no topo quando necessário. Nomes de campo que não são nomes GraphQL válidos são convertidos para camelCase.
Casos de Uso Comuns
- Rascunhar object types para um gateway GraphQL sobre uma API REST
- Documentar o formato de dados JSON em SDL
- Começar um design de API schema-first a partir de dados de exemplo
- Comparar payloads REST com um schema GraphQL existente
Perguntas Frequentes
Por que um ID é tipado como Int, e não ID?
O exemplo só mostra um número. Troque para ID! se o campo for um identificador – a ferramenta não tem como saber a semântica.
O que é o scalar JSON?
Um scalar personalizado usado para valores cujo tipo varia. O seu servidor precisa defini-lo, por exemplo com graphql-scalars.
Por que Float para inteiros grandes?
O Int do GraphQL é limitado a valores de 32 bits com sinal; números maiores seriam rejeitados, então são mapeados para Float (ou use um scalar BigInt personalizado).