Ir para o conteúdo
Totalmente local

JSON para GraphQL SDL

Converta um documento JSON em tipos GraphQL escritos em Schema Definition Language.

Entrada
Saída

JSON para GraphQL SDL

Cole um objeto JSON ou uma matriz de objetos e esta ferramenta deriva tipos GraphQL escritos em Schema Definition Language. É uma forma rápida de inicializar um schema a partir de uma resposta de API real, uma exportação de base de dados ou uma carga útil de exemplo, em vez de digitar cada campo e tipo manualmente.

Os escalares são inferidos dos valores JSON: strings tornam-se String, números inteiros tornam-se Int, decimais tornam-se Float, e verdadeiro/falso tornam-se Boolean. Um campo denominado "id" é digitado como ID quando contém uma string ou um inteiro, correspondendo ao modo como a maioria das APIs GraphQL identificam registos. Campos cujo valor de exemplo é nulo são marcados como opcionais; todos os outros campos recebem o marcador obrigatório ("!"). Objetos aninhados tornam-se seus próprios tipos nomeados, referenciados a partir do elemento superior, e objetos aninhados estruturalmente idênticos são fundidos num único tipo em vez de serem duplicados. As matrizes tornam-se tipos de lista com o tipo de elemento inferido a partir do conteúdo delas.

Duas opções adicionais moldam o resultado: ativar a opção de escalar customizado reconhece strings de data e data-hora ISO e declara "scalar Date" ou "scalar DateTime" em vez de as tratar como String simples, e a escolha "Gerar como" alterna entre um "type" (para consultas) e um "input" (para argumentos de mutação). Ao ativar "Incluir tipo Query", adiciona-se um pequeno tipo Query com um campo a devolver o tipo raiz, para que o schema esteja pronto para colar num servidor ou numa ferramenta orientada por schema tal como está.

Tudo é executado localmente no seu navegador — o JSON que cola nunca é enviado para lugar nenhum. Copie o SDL gerado, descarregue-o como ficheiro .txt, ou envie-o diretamente para a entrada de outra ferramenta para continuar a trabalhar nele.

FAQ

Como é que decide se um campo é obrigatório?
Um campo é marcado com "!" (obrigatório) a menos que seu valor de exemplo no JSON seja nulo, caso em que é deixado opcional.
Como é que os objetos aninhados e as listas são processados?
Cada objeto aninhado torna-se seu próprio tipo GraphQL nomeado referenciado a partir do seu elemento superior. As formas aninhadas idênticas são reutilizadas como um tipo. As matrizes tornam-se tipos de lista, com o tipo de elemento obtido a partir do conteúdo da matriz.
O que faz "Detetar ID a partir do campo 'id'"?
Quando ativado, qualquer campo literalmente denominado "id" que contenha uma string ou um número inteiro é digitado como o escalar ID incorporado do GraphQL em vez de String ou Int.
Posso gerar tipos de entrada GraphQL em vez de tipos de objeto?
Sim. Comute "Gerar como" para "input" para obter blocos input Name { … }, úteis para argumentos de mutação. O wrapper Query é adicionado apenas para saída "type", já que um campo Query não pode devolver um tipo de entrada.
O meu JSON é enviado para algum lugar?
Não. A conversão é executada inteiramente no seu navegador — seu JSON nunca sai do seu dispositivo.