Conversor GraphQL para XML
Cole um esquema ou consulta GraphQL. Receba XML limpo.
O que esta ferramenta faz
Se você já precisou documentar uma API GraphQL para um time que só trabalha com XML, ou ligar um esquema GraphQL a um cliente SOAP legado, conhece a parte chata: os tipos de GraphQL não mapeiam um para um. Cole aqui o seu esquema ou consulta e receba XML bem formado numa única passada. Algumas definições type, um arquivo SDL completo ou uma consulta concreta com argumentos — o resultado é o mesmo: um documento XML completo que espelha a forma dos dados.
O conversor entende a especificação do GraphQL, não só a sintaxe de superfície. Os padrões dos escalares caem como você espera — String vira texto, Int e Float viram texto numérico, Boolean vira true/false e ID vira string. Marcadores não-nulo (String!) e de lista ([OrderItem!]!) são respeitados: uma lista obrigatória aparece como um elemento contêiner com um filho por item, e campos nulos sem valor vêm como elementos vazios para manter a forma do documento consistente.
Além dos tipos embutidos, a ferramenta cobre o resto do sistema de tipos. Tipos input viram elementos aninhados, valores de enum saem como texto, tipos interface e union são resolvidos para as formas concretas subjacentes e fragmentos (nomeados ou inline) são expandidos para que a saída seja plana e autossuficiente. Escalares personalizados como DateTime, Date e JSON são emitidos como ISO-8601 ou valores serializados. Se você colar uma query com argumentos, eles são preservados como parte do elemento raiz, de modo que o XML é um registro fiel da requisição, não apenas um bloco de dados.
Como usar
Três passos. Funciona do mesmo jeito se você cola um único tipo ou um esquema completo com consultas.
Cole seu GraphQL (ou teste o exemplo)
Jogue o GraphQL como está no editor da esquerda. Um único type, um arquivo SDL completo com input/enum/interface/union ou uma consulta concreta com variáveis — tudo serve. Clique em Carregar exemplo se quiser começar com uma forma realista.
Não precisa tirar comentários nem reformatar a sintaxe SDL. Deixe do jeito que seu editor escreveu — docstrings com três aspas e comentários com cerquilha passam sem problema.
Clique em Converter
Clique no botão verde Converter. A ferramenta lê o esquema (ou a consulta), resolve fragmentos e marcadores de lista/não-nulo e monta o XML em uma passada. Um indicador curto de carregamento aparece enquanto a conversão acontece.
Copie o XML
O painel direito enche de XML indentado e bem formado que qualquer parser XML padrão aceita. Cole direto na sua requisição SOAP, documentação, fixture ou exemplo de XSD.
Quando realmente salva o dia
Documentação XML para uma API GraphQL
Docs internas ou de parceiros que vivem em XML (DITA, DocBook, referência baseada em XSD). Cole o esquema, receba payloads XML de exemplo alinhados aos tipos reais — sem tradução manual.
Gerar fixtures XML a partir de um esquema
Testes de contrato, testes de snapshot ou um mock server que fala XML. Entregue o esquema que você já tem e receba fixtures XML consistentes com cada lista, campo opcional e tipo aninhado no lugar certo.
Ponte para clientes SOAP legados
Um sistema parceiro só aceita payloads XML, mas seu backend fala GraphQL. Cole a consulta e o tipo de resposta e receba um corpo XML de partida para colocar na requisição SOAP.
Migração e análise de esquema
Sair do GraphQL para uma API em XML (ou só comparar os dois formatos). Tenha uma versão XML lado a lado de cada tipo para que revisores que não leem SDL consigam acompanhar.
Perguntas frequentes
Como type, input, enum, interface e union são tratados?
type e input viram elementos contêiner com um filho por campo. Valores de enum saem como texto comum (o nome do enum em maiúsculas, exatamente como declarado no SDL). interface é resolvida para seus próprios campos mais os campos do tipo implementador quando sabemos o tipo concreto. union é resolvida para a forma do membro correspondente. Veja a referência da linguagem de tipos GraphQL para as regras completas.
Quais padrões são usados para String, Int, Float, Boolean e ID?
String e ID viram conteúdo de texto. Int é um inteiro simples. Float é decimal sem zeros à direita. Boolean é o texto minúsculo true ou false. Isso bate com as definições de escalares da especificação do GraphQL, então a saída passa redondinha por um parser XML.
Como os marcadores não-nulo (!) e lista ([T]) são tratados?
O não-nulo (String!) é tratado como um campo que deve aparecer — campos nulos sem valor saem como elementos vazios para manter a forma do documento previsível. Listas ([OrderItem!]!) viram um elemento contêiner com um filho por item, nomeado conforme o tipo do elemento — por exemplo items: [OrderItem!]! vira <items><OrderItem/><OrderItem/></items>. Listas aninhadas ([[Int]]) aninham da mesma forma.
Os fragmentos são resolvidos?
Sim. Fragmentos nomeados (...OrderFields) e fragmentos inline (... on Order { ... }) são expandidos para que o XML fique plano e autossuficiente. Você não precisa colar as definições de fragmento à parte — se estão no mesmo bloco, a ferramenta liga os pontos. Isso combina com o modelo normal de execução de consultas, onde os fragmentos são espalhados no selection set antes de a resposta ser montada.
E escalares personalizados como DateTime?
Escalares personalizados bem conhecidos (DateTime, Date, Time, UUID, JSON) são emitidos como texto ISO-8601 ou valores serializados por convenção — batendo com o que a maioria das bibliotecas de escalares faz. Escalares desconhecidos caem em texto de string, então nada é descartado silenciosamente. Se precisa de um formato específico, faça pós-processamento no XML ou renomeie o escalar.
Posso colar uma consulta com argumentos, não só o esquema?
Pode. Cole uma query com variáveis e argumentos — por exemplo query GetOrder($orderId: ID!) { order(id: $orderId) { ... } } — e os argumentos saem como atributos no elemento raiz. Os campos selecionados ditam quais partes da forma da resposta são serializadas, então o XML corresponde ao que a consulta realmente devolveria, não ao tipo inteiro.
Outras ferramentas úteis
GraphQL para XML é só uma peça do quebra-cabeça. Estas ferramentas combinam bem: