まくろぐ
更新: / 作成:

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 のときにのみフィールドを取得します
クエリ内での @include ディレクティブによる条件分岐
query QueryOrganization($org: String!, $details: Boolean = false) {
  organization(login: $org) {
    name
    description
    websiteUrl @include(if: $details) {
  }
}
variables
{
  "org": "graphql",
  "details": true
}

関連記事

まくろぐ
サイトマップまくへのメッセージ