İçeriğe geç

Değişkenler

GraphQL ile çalışırken tüm değerleri sabit kodlamaktan kaçınmak için, API Explorer, bir JSON nesnesinin eklenebileceği bir Değişkenler bölümü sağlar. JSON nesnesinin en üst düzey anahtarları, bir dolar işareti ($KEY_NAME) ile gösterilen adlara sahip değişkenler olarak kullanılabilir hale getirilir. Bu, dinamik sorgular, mutasyonlar ve abonelikler yazarken ve test ederken çok daha keyifli bir geliştirme deneyimi sağlar.

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

alt text

GraphQL sunucunuza bir istek gönderirken, işlem belgesi aynı kalırken bazı dinamik girişlerin eklenmesi gerekebilir. Bunlar işleminizin değişkenleridir. Değişkenler, GraphQL işleminde bildirilen türlendirilmiş argümanlar olmalıdır. GraphQL statik olarak türlendirildiği için, doğru değişkenleri geçirip geçirmediğiniz sizin için doğrulanabilir.

Aşağıdaki iki örnek, “Aktif” durumu olan ve adları “M” ile başlayan kullanıcıların listesini sorgulamak için birlikte çalışabilir.

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

Değişkenler tek bir giriş değeri olmakla sınırlı değildir. Belirli bir çalışma alanında - yerel veya özel - bildirilen herhangi bir türe sahip karmaşık nesneler olabilirler. Bu, tüm filtreler, sıralamalar ve diğerleri gibi şeylerin dinamik olarak değişken olarak geçirilmesine izin verir.

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