GraphQL
エンジニアのためのWebチートシート
GraphQLはAPIのためのクエリ言語であり、既存のデータに対するクエリを実行するためのランタイムです。 クエリ、ミューテーション、型システム、スキーマ定義、フラグメント、ページネーションなどをチートシートにまとめました。
基本クエリ
クエリの基本
フィールドを指定してデータを取得します。
引数
フィールドに引数を渡して結果を絞り込みます。
エイリアス
同じフィールドを異なる引数で複数回取得できます。
変数とディレクティブ
変数
クエリに動的な値を渡します。
ディレクティブ
フィールドの取得を条件付きで制御します。
フラグメント
名前付きフラグメント
再利用可能なフィールドセットを定義します。
インラインフラグメント
Union/Interface型で具体的な型のフィールドにアクセスします。
ミューテーション
基本ミューテーション
データの作成・更新・削除を行います。
変数付きミューテーション
変数とInput型を使って安全にデータを変更します。
サブスクリプション
基本サブスクリプション
WebSocketでリアルタイムにデータを受信します。
型システム
スカラー型
組み込みスカラー型の一覧です。
Type Description Int符号付き32ビット整数 Float符号付き倍精度浮動小数点数 StringUTF-8文字列 Booleantrue/falseIDユニーク識別子(文字列としてシリアライズ)
カスタムスカラー
独自のスカラー型を定義できます。
オブジェクト型
フィールドの集合を持つ型を定義します。
型修飾子
Null許容/非Null/リストの組み合わせです。
記法 意味 StringNull許容の文字列 String!必須(非Null)の文字列 [String]Null許容のリスト(要素もNull許容) [String!]Null許容のリスト(要素は非Null) [String]!必須のリスト(要素はNull許容) [String!]!必須のリスト(要素も非Null)
列挙型(Enum)
有限の選択肢を定義します。
ユニオン型
複数の型のいずれかを返すことを示します。
インターフェース
共通フィールドを持つ型の契約を定義します。
入力型(Input)
ミューテーションの引数に使う複合型です。
スキーマ定義
ルート型
スキーマのエントリポイントを定義します。
スキーマ例
Query/Mutation/型を組み合わせた完全な例です。
ドキュメントコメント
スキーマに説明を追加します。
エラーハンドリング
エラーレスポンス
GraphQLのエラーレスポンス形式です。
部分的成功
dataとerrorsが共存するケースです。
ページネーション
Offset方式
limit/offsetでページ分割します。
Cursor方式(Relay)
Relay仕様のConnection/Edgeパターンです。
イントロスペクション
スキーマ情報の取得
__schemaで型一覧やルート型を取得します。
型情報の取得
__typeで特定の型のフィールド情報を取得します。