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.