GraphQL Query Formatter
Formate e embeleze consultas GraphQL, mutações, subscrições e fragmentos com indentação adequada.
Sobre esta ferramenta
GraphQL é uma linguagem de consulta poderosa para APIs, mas quando você trabalha com consultas, mutações e subscrições complexas, o texto sem formatação pode se tornar difícil de ler e depurar. Um GraphQL Query Formatter pega seu código GraphQL sem formatação ou mal formatado e o reestrutura automaticamente com indentação apropriada e espaçamento, tornando muito mais fácil de entender à primeira vista. Isso é especialmente valioso ao integrar com APIs, testar diferentes estruturas de consultas ou colaborar com membros da equipe que precisam revisar seu código.
Usar a ferramenta é direto: coloque sua consulta, mutação, subscrição ou fragmento GraphQL na área de entrada e clique no botão de formatação. O formatador analisa instantaneamente seu código, adiciona indentação apropriada, alinha campos e argumentos aninhados e garante espaçamento consistente em todo. Você pode então copiar o resultado lindamente formatado e usá-lo em seus projetos, documentação ou ferramentas de teste de API. Ele manipula cenários complexos, incluindo seleções aninhadas, aliases, variáveis, diretivas e fragmentos em linha.
Esta ferramenta é particularmente útil para desenvolvedores trabalhando com Apollo Client, Relay ou qualquer biblioteca de cliente GraphQL, bem como para engenheiros de backend gerenciando servidores GraphQL. Economiza tempo comparado à formatação manual e ajuda a detectar problemas de sintaxe antes de enviar solicitações para sua API. Quer você esteja aprendendo GraphQL, depurando uma consulta complexa ou preparando código para revisão, ter um formatador confiável garante que suas consultas sejam sempre claras e profissionais.
Perguntas Frequentes
Implementação de Código
def format_graphql(query: str, indent: int = 2) -> str:
"""Simple GraphQL formatter."""
result = []
depth = 0
pad = " " * indent
i = 0
q = query.strip()
while i < len(q):
ch = q[i]
if ch == '"':
# Consume string
j = i + 1
while j < len(q):
if q[j] == "\\" and j + 1 < len(q):
j += 2
continue
if q[j] == '"':
j += 1
break
j += 1
result.append(q[i:j])
i = j
continue
if ch == "{":
result.append(" {\n")
depth += 1
result.append(pad * depth)
elif ch == "}":
depth = max(0, depth - 1)
result.append("\n" + pad * depth + "}")
elif ch in ("\n", "\r", " ", "\t"):
if result and result[-1] not in ("\n", " ", "{\n"):
result.append(" ")
else:
result.append(ch)
i += 1
return "".join(result).strip()
query = """
query GetUser($id: ID!) {user(id: $id) {id name email posts {title}}}
"""
print(format_graphql(query))Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.