全体に対する変数が渡される事を期待しつつ、独自の変数を使うことができます。
オペレーション変数に関する定義は 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
}
}