コンテンツにスキップ

変数

GraphQLを使用するときにすべての値をハードコーディングしないように、API ExplorerはJSONオブジェクトを追加できる変数セクションを提供します。JSONオブジェクトのトップレベルキーは、ドル記号($KEY_NAME)で示される名前を持つ変数として利用可能になります。これにより、動的なクエリ、ミューテーション、サブスクリプションを作成してテストする際に、より快適な開発体験が可能になります。

query MyQuery1 ($domain: String) {
students(
filter: {
email: {
contains: $domain
}
}
) {
items {
id
firstName
email
}
}
}
{
"domain": "example.com"
}

alt text

GraphQLサーバーにリクエストを送信する際、操作ドキュメントはそのままにして、動的な入力をいくつか追加する必要がある場合があります。これらが操作の変数です。変数は、GraphQL操作で宣言される型付き引数である必要があります。GraphQLは静的に型付けされているため、正しい変数が渡されているかどうかを検証できます。

次の2つの例は、「Active」ステータスを持ち、名前が「M」で始まるユーザーのリストをクエリするために連携して機能します。

query MyQuery1($name_start: String, $status: Boolean) {
students(
filter: {
firstName: {
starts_with: $name_start
},
isActive: {
equals: $status
}
}
) {
items {
id
firstName
email
}
}
}
{
"name_start": "M",
"status": true
}

alt text

変数は単一の入力値に限定されません。ワークスペースで宣言された任意の型(ネイティブまたはカスタム)を持つ複雑なオブジェクトにすることができます。これにより、フィルタ全体、ソート、その他多くのものを変数として動的に渡すことができます。

query MyQuery (
$filter: StudentsFilter
$first: Int
$orderBy: StudentsOrderBy
) {
students(
filter: $filter
first: $first
orderBy: $orderBy
) {
count
items {
id
firstName
lastName
age
}
}
}
{
"filter": {
"email": { "contains": "example" },
"firstName": { "starts_with": "M" }
},
"orderBy": { "lastName": "ASC"},
"first": 2
}

alt text