GraphQL クエリで、各フィールド名(あるいはフラグメント)の後ろに @include
ディレクティブや @skip
ディレクティブを配置すると、if
引数で指定した条件によってそのフィールドを取得するかどうかを制御できます。
fieldName @include(if: $someTest)
fieldName @skip(if: $someTest)
@include
ディレクティブと @skip
ディレクティブの違いは、if
引数の判定が逆転しているだけです。
@include(if: Boolean)
ディレクティブif
引数の値がtrue
のときにのみフィールドを取得します
@skip(if: Boolean)
ディレクティブif
引数の値がfalse
のときにのみフィールドを取得します
関連記事
- GraphQL クエリ仕様: フィールド名にエイリアスを付ける
- GraphQL スキーマ仕様: @deprecated ディレクティブで非推奨のフィールドを示す
- GraphQL スキーマ仕様: インタフェース型 (interface type) を定義する
- GraphQL スキーマ仕様: スキーマ定義の基本
- GraphQL スキーマ仕様: 型やフィールドに説明文 (description) を記述する
- Apollo Client の fetchMore を自動で呼び出して GitHub GraphQL の100件制限を乗り越える (useAutoFetchMore)
- Apollo CLI の codegen で GraphQL クエリレスポンスの TypeScript 型を自動生成する