Entrada

Saída

O que é a ferramenta Amostra GraphQL para JSON?

Mockar uma API GraphQL na tua suíte de testes geralmente significa escrever dados falsos à mão para cada tipo — chato, frágil, e o esquema se distancia das tuas fixtures em um ou dois sprints. Esta página lê a tua linguagem de definição de esquema GraphQL e emite um documento JSON que combina com ela. Cole o teu SDL à esquerda e o painel direito te devolve um objeto JSON preenchido: cada campo do tipo Query preenchido, listas preenchidas com dois elementos, enums definidos no primeiro valor e escalares personalizados como DateTime ou URL mapeados para defaults sensatos.

Não há dependência de parser carregada na página — o walker de SDL é escrito à mão, ~600 linhas, e cobre todas as construções que aparecem num esquema real: type, interface, union, enum, input, scalar, modificadores de lista e non-null e tipos auto-referenciais. A saída é JSON puro segundo o RFC 8259, indentado com dois espaços, pronto para colar num mock de fetch ou numa resposta de exemplo do Postman. Campos chamados email, name, phone, currency ou status recebem amostras de valor que combinam; tudo o resto cai num genérico "sample text".

Tudo acontece no teu navegador. O teu esquema nunca sai da página, nenhuma chamada de rede é feita e a conversão é instantânea.

Como usar a ferramenta Amostra GraphQL para JSON

Três passos rápidos. Os botões descritos abaixo são os botões reais desta página.

1

Colar, carregar ou carregar uma amostra

Cole um esquema GraphQL no painel Entrada à esquerda — a conversão é automática cerca de um terço de segundo depois de pares de digitar, então não há botão Converter. Clique em Carregar para um arquivo .graphql ou .gql, ou em Amostra para carregar um esquema realista de Order de e-commerce. Uma entrada típica fica assim:

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

Funcionam tanto esquemas estilo servidor (com type Query { ... }) quanto arquivos de tipos isolados. O walker pega Query como raiz se existir, senão o primeiro tipo objeto. As formas aceitas combinam com o que ferramentas como graphql-js parseiam ao iniciar.

2

Ler a saída JSON

O painel Saída à direita renderiza a amostra JSON com indentação de dois espaços. Tipos objeto viram objetos. Listas viram arrays de dois elementos. Enums viram o primeiro valor como string. Escalares personalizados recebem defaults sensatos — DateTime vira um timestamp ISO-8601, URL vira "https://example.com/...", JSON vira {}. Tipos auto-referenciais (type Person { friends: [Person!]! }) são limitados à profundidade 4 e truncam com null para que a página nunca trave.

3

Copiar ou baixar

Clique em Copiar para pegar o JSON para um arquivo de fixture, servidor mock ou stub de fetch. Clique em Baixar para salvar como sample.json. O botão limpar do painel de entrada te devolve ao estado vazio. A conversão acontece inteiramente do lado cliente — o teu esquema nunca sai da página.

Quando realmente usarias isso

Fixtures de servidor GraphQL mock

Estás subindo um backend mock com json-graphql-server ou um mock do Apollo Server e precisas de um arquivo JSON inicial com a forma do teu esquema. Cole o SDL, copie a saída e estás 80% lá — ajuste nomes e IDs, entregue a fixture.

Respostas de exemplo no Postman / Insomnia

Documentar um endpoint GraphQL no Postman ou Insomnia significa preencher um corpo de resposta de exemplo para cada operação. Gere a forma JSON a partir do tipo, cole no exemplo, edite os valores para combinar com o caso de teste. Bem melhor do que escrever objetos aninhados do zero à mão.

Rascunho de tipos no frontend

Quando o backend solta um novo tipo GraphQL, o frontend frequentemente precisa de um payload de amostra para conectar a UI antes do endpoint estar pronto. Converta o esquema para JSON, jogue numa fixture, e construa os componentes contra a fixture. Troque por dados ao vivo quando a API estiver pronta.

Exploração de esquema

Ler um SDL de 300 linhas tudo bem; ver como uma resposta real fica é mais rápido. A amostra JSON deixa o esquema concreto — dá pra ver na hora quais campos são aninhados, quais são arrays e onde os enums vivem. Útil como apoio de onboarding para engenheiros novos num serviço.

Perguntas frequentes

Ele executa a query contra um servidor real?

Não. A página apenas gera um documento de amostra que se ajusta à forma do esquema. Não há chamada de rede. Se precisas bater num endpoint GraphQL real, usa o GraphiQL ou qualquer cliente GraphQL.

Por que o meu tipo auto-referencial para depois de alguns níveis?

Há um limite de recursão na profundidade 4. Um esquema como type Person { friends: [Person!]! } geraria de outra forma um objeto aninhado infinitamente. Passado o limite o valor vira null para que o JSON fique finito e formatável.

Qual tipo raiz ele usa?

Procura type Query primeiro. Se não tiver, escolhe o primeiro tipo objeto definido no esquema (pulando tipos input). Podes mover qualquer tipo para o topo reordenando o teu SDL.

Escalares personalizados são tratados?

Sim. Os comuns (DateTime, Date, Time, URL, Email, JSON, BigInt) têm defaults sensatos embutidos. Qualquer outro cai numa string placeholder genérica. Se o teu escalar precisa mapear para algo específico, edita a saída à mão — é só JSON.

O JSON é válido contra o meu esquema?

É válido em forma: cada campo obrigatório está preenchido, os tipos batem com seu escalar/objeto/lista declarado, enums usam um valor real de enum. Não é semanticamente válido (o email não é um email real, o ID do pedido não é um ID real). Use como ponto de partida de fixture, não como substituto de testes.

O meu esquema é enviado para um servidor?

Não. A conversão roda inteiramente no teu navegador. Nada é enviado, nada é logado. É seguro colar esquemas internos ou não publicados.

Outras ferramentas de GraphQL e JSON

Gerar uma amostra é uma parte do fluxo de GraphQL. Estas ferramentas cobrem o resto: