Aller au contenu
🛠️ToolsShed

GraphQL Query Formatter

Formater et embellir les requêtes, mutations, abonnements et fragments GraphQL avec une indentation appropriée.

À propos de cet outil

GraphQL est un langage de requête puissant pour les API, mais lorsque vous travaillez avec des requêtes, des mutations et des abonnements complexes, le texte brut peut devenir difficile à lire et à déboguer. Un GraphQL Query Formatter reprend votre code GraphQL non formaté ou mal formaté et le restructure automatiquement avec une indentation appropriée et un espacement, le rendant beaucoup plus facile à comprendre en un coup d'œil. C'est particulièrement précieux lors de l'intégration avec des API, du test de différentes structures de requêtes ou de la collaboration avec des membres d'équipe qui ont besoin d'examiner votre code.

L'utilisation de l'outil est simple : collez votre requête, mutation, abonnement ou fragment GraphQL dans la zone de saisie et cliquez sur le bouton de formatage. Le formateur analyse instantanément votre code, ajoute une indentation appropriée, aligne les champs imbriqués et les arguments, et assure un espacement cohérent partout. Vous pouvez ensuite copier le résultat magnifiquement formaté et l'utiliser dans vos projets, votre documentation ou vos outils de test d'API. Il gère les scénarios complexes, notamment les sélections imbriquées, les alias, les variables, les directives et les fragments en ligne.

Cet outil est particulièrement utile pour les développeurs travaillant avec Apollo Client, Relay ou toute bibliothèque cliente GraphQL, ainsi que pour les ingénieurs backend gérant des serveurs GraphQL. Il économise du temps par rapport au formatage manuel et aide à détecter les problèmes de syntaxe avant d'envoyer des requêtes à votre API. Que vous appreniez GraphQL, que vous déboguiez une requête complexe ou que vous prépariez du code pour révision, disposer d'un formateur fiable garantit que vos requêtes sont toujours claires et professionnelles.

Questions Fréquentes

Implémentation du Code

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.