コンテンツにスキップ

変数

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 つの例は、ステータスが「アクティブ」で、名前が「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