Variables

全体に対する変数が渡される事を期待しつつ、独自の変数を使うことができます。

オペレーション変数に関する定義は Operation name の後に置きます。以下は例です。

query Foo($name: String!) {
  user(login: $name) {
    id
  }
}

Operation name の後に()を置いて、その中に変数名とそのタイプを:で区切って置いてます。

変数名は頭に$を付けなければなりません。また使う時にもそのまま$から使います。

例の$nameに対するタイプの後に!が付いてます。こうするとその変数 Non-Null となり渡さなければならない変数になります。
基本的に!は付ける事が推奨され、付けない場合の 1 つはnullを許容する引数に渡してる場合です。

上記のクエリは変数を共に実行なりする必要があります。ここでは JSON で記述します。

{
  "name": "nju33"
}

ちなみに変数の定義時は$を付けなくても良いです。

もう 1 つは変数にデフォルト値を設定する場合です。これはタイプの後に= "default valuue"という形で設定できます。
デフォルト値を設定する場合!を付けるとエラーになってしまうので注意します。

query Foo($name: String = "nju33") {
  user(login: $name) {
    id
  }
}