Zum Inhalt springen
🛠️ToolsShed

GraphQL Query Formatter

Formatiere und verschönere GraphQL-Queries, Mutations, Subscriptions und Fragments mit korrektem Einrücken.

Über dieses Tool

GraphQL ist eine leistungsstarke Abfragesprache für APIs, aber bei der Arbeit mit komplexen Abfragen, Mutationen und Abonnements kann der unformatierte Text schwer zu lesen und zu debuggen sein. Ein GraphQL Query Formatter nimmt Ihren unformatierten oder schlecht formatierten GraphQL-Code und strukturiert ihn automatisch mit angemessener Einrückung und Abstände um, wodurch er auf den ersten Blick viel leichter zu verstehen ist. Dies ist besonders wertvoll bei der Integration mit APIs, beim Testen verschiedener Abfragestrukturen oder bei der Zusammenarbeit mit Teamkollegen, die Ihren Code überprüfen müssen.

Die Verwendung des Tools ist unkompliziert: Fügen Sie Ihre GraphQL-Abfrage, Mutation, Abonnement oder ein Fragment in den Eingabebereich ein und klicken Sie auf die Schaltfläche zum Formatieren. Der Formatierer analysiert Ihren Code sofort, fügt angemessene Einrückungen hinzu, richtet verschachtelte Felder und Argumente aus und stellt konsistente Abstände sicher. Sie können dann das schön formatierte Ergebnis kopieren und in Ihren Projekten, Dokumentationen oder API-Testtools verwenden. Es verarbeitet komplexe Szenarien einschließlich verschachtelter Auswahlmöglichkeiten, Aliase, Variablen, Direktiven und Inline-Fragmente.

Dieses Tool ist besonders hilfreich für Entwickler, die mit Apollo Client, Relay oder einer beliebigen GraphQL-Clientbibliothek arbeiten, sowie für Backend-Ingenieure, die GraphQL-Server verwalten. Es spart Zeit gegenüber manuellem Formatieren und hilft, Syntaxfehler zu erkennen, bevor Sie Anfragen an Ihre API senden. Egal ob Sie GraphQL lernen, komplexe Abfragen debuggen oder Code zur Überprüfung vorbereiten – ein zuverlässiger Formatierer stellt sicher, dass Ihre Abfragen immer klar und professionell sind.

Häufig gestellte Fragen

Code-Implementierung

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.