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