GraphQL Query Formatter
Formatta e abbellisci query GraphQL, mutazioni, sottoscrizioni e frammenti con corretta indentazione.
Informazioni sullo strumento
GraphQL è un linguaggio di query potente per le API, ma quando si lavora con query, mutazioni e sottoscrizioni complesse, il testo grezzo può diventare difficile da leggere e eseguire il debug. Un GraphQL Query Formatter prende il tuo codice GraphQL non formattato o mal formattato e lo ristruttura automaticamente con l'indentazione appropriata e la spaziatura, rendendo molto più facile la comprensione a prima vista. Questo è particolarmente prezioso quando si integra con API, si testano diverse strutture di query o si collabora con i membri del team che devono esaminare il tuo codice.
L'utilizzo dello strumento è semplice: incolla la tua query, mutazione, sottoscrizione o frammento GraphQL nell'area di input e fai clic sul pulsante di formattazione. Il formattatore analizza istantaneamente il tuo codice, aggiunge l'indentazione appropriata, allinea i campi e gli argomenti annidati, e assicura una spaziatura coerente. Puoi quindi copiare il risultato bellamente formattato e utilizzarlo nei tuoi progetti, nella documentazione o negli strumenti di test API. Gestisce scenari complessi incluse selezioni annidate, alias, variabili, direttive e frammenti inline.
Questo strumento è particolarmente utile per gli sviluppatori che lavorano con Apollo Client, Relay o qualsiasi libreria client GraphQL, nonché per gli ingegneri backend che gestiscono server GraphQL. Risparmia tempo rispetto alla formattazione manuale e aiuta a individuare problemi di sintassi prima di inviare richieste alla tua API. Che tu stia imparando GraphQL, eseguendo il debug di una query complessa o preparando il codice per la revisione, avere un formattatore affidabile garantisce che le tue query siano sempre chiare e professionali.
Domande Frequenti
Implementazione del Codice
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.