Vai al contenuto
🛠️ToolsShed

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.