Przejdź do głównej zawartości

Zmienne

Aby uniknąć sztywnego kodowania wszystkich wartości podczas pracy z GraphQL, API Explorer udostępnia sekcję Zmienne, w której można dodać obiekt JSON. Klucze najwyższego poziomu obiektu JSON są udostępniane jako zmienne, których nazwy są oznaczone znakiem dolara ($KEY_NAME). Pozwala to na znacznie przyjemniejsze doświadczenie programistyczne podczas pisania i testowania dynamicznych zapytań, mutacji i subskrypcji.

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

alt text

Niektóre dynamiczne dane wejściowe mogą wymagać dodania podczas wysyłania żądania do serwera GraphQL, podczas gdy dokument operacji pozostaje taki sam. Są to zmienne Twojej operacji. Zmienne muszą być typowanymi argumentami, które są deklarowane w operacji GraphQL. Ponieważ GraphQL jest typowany statycznie, to czy przekazujesz poprawne zmienne może być dla Ciebie walidowane.

Poniższe dwa przykłady działałyby razem, aby zapytać o listę użytkowników ze statusem “Aktywny” i których imiona zaczynają się na “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

Zmienne nie ograniczają się do bycia pojedynczymi wartościami wejściowymi. Mogą to być złożone obiekty o dowolnym zadeklarowanym typie w danym obszarze roboczym - natywnym lub niestandardowym. Pozwala to na dynamiczne przekazywanie jako zmienne takich rzeczy jak całe filtry, sortowania i wiele innych.

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