Saltar al contenido
🛠️ToolsShed

Formateador de Consultas GraphQL

Formatea y embellece consultas, mutaciones, suscripciones y fragmentos GraphQL con sangría adecuada.

Acerca de esta herramienta

GraphQL es un lenguaje de consultas poderoso para APIs, pero cuando trabajas con consultas, mutaciones y suscripciones complejas, el texto sin formato puede ser difícil de leer y depurar. Un GraphQL Query Formatter toma tu código GraphQL sin formato o mal formateado y lo reestructura automáticamente con indentación adecuada y espaciado, facilitando mucho su comprensión a primera vista. Esto es especialmente valioso al integrar con APIs, probar diferentes estructuras de consultas o colaborar con miembros del equipo que necesiten revisar tu código.

El uso de la herramienta es sencillo: pega tu consulta, mutación, suscripción o fragmento de GraphQL en el área de entrada y haz clic en el botón de formateo. El formateador analiza instantáneamente tu código, añade indentación apropiada, alinea campos y argumentos anidados, y asegura un espaciado consistente en todo momento. Luego puedes copiar el resultado bellamente formateado y usarlo en tus proyectos, documentación o herramientas de prueba de API. Maneja escenarios complejos incluyendo selecciones anidadas, alias, variables, directivas y fragmentos en línea.

Esta herramienta es particularmente útil para desarrolladores que trabajan con Apollo Client, Relay o cualquier biblioteca de cliente GraphQL, así como para ingenieros de backend que administran servidores GraphQL. Ahorra tiempo en comparación con el formato manual y ayuda a detectar problemas de sintaxis antes de enviar solicitudes a tu API. Ya sea que estés aprendiendo GraphQL, depurando una consulta compleja o preparando código para revisión, tener un formateador confiable asegura que tus consultas sean siempre claras y profesionales.

Preguntas Frecuentes

Implementación 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.