GraphQL Query Formatter
GraphQLクエリ、ミューテーション、サブスクリプション、フラグメントをフォーマットしきれいにインデントします。
このツールについて
GraphQLは強力なクエリ言語ですが、複雑なクエリ、ミューテーション、サブスクリプションを扱う場合、生のテキストは読みにくく、デバッグが困難になることがあります。GraphQL Query Formatterは、フォーマットされていない、または形式の悪いGraphQLコードを自動的に再構成し、適切なインデントとスペースを追加して、一目で理解しやすくします。これはAPIとの統合、異なるクエリ構造のテスト、またはチームメンバーがコードをレビューする必要がある場合に特に価値があります。
ツールの使用は簡単です。GraphQLのクエリ、ミューテーション、サブスクリプション、またはフラグメントを入力エリアに貼り付け、フォーマットボタンをクリックするだけです。フォーマッタはコードを即座に解析し、適切なインデントを追加し、ネストされたフィールドと引数を調整し、全体を通して一貫したスペースを確保します。その後、美しくフォーマットされた結果をコピーしてプロジェクト、ドキュメント、またはAPIテストツールで使用できます。ネストされた選択、エイリアス、変数、ディレクティブ、インラインフラグメントなどの複雑なシナリオに対応します。
このツールは、Apollo Client、Relay、またはGraphQLクライアントライブラリを使用している開発者、ならびにGraphQLサーバーを管理するバックエンドエンジニアに特に役立ちます。手動フォーマットと比較して時間を節約し、APIへのリクエスト送信前に構文エラーをキャッチするのに役立ちます。GraphQLを学習している、複雑なクエリをデバッグしている、またはレビュー用にコードを準備している場合でも、信頼できるフォーマッタを使用すればクエリは常にクリアでプロフェッショナルです。
よくある質問
コード実装
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.