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.
Mutacja GraphQL
Dział zatytułowany „Mutacja GraphQL”query MyQuery1 ($domain: String) { students( filter: { email: { contains: $domain } } ) { items { id firstName email } }}Zmienne
Dział zatytułowany „Zmienne”{ "domain": "example.com"}
Deklarowanie Zmiennych
Dział zatytułowany „Deklarowanie Zmiennych”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”.
Mutacja GraphQL
Dział zatytułowany „Mutacja GraphQL”query MyQuery1($name_start: String, $status: Boolean) { students( filter: { firstName: { starts_with: $name_start }, isActive: { equals: $status } } ) { items { id firstName email } }}Zmienne
Dział zatytułowany „Zmienne”{ "name_start": "M", "status": true}
Deklarowanie Typowanych Zmiennych
Dział zatytułowany „Deklarowanie Typowanych Zmiennych”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.
Mutacja GraphQL
Dział zatytułowany „Mutacja GraphQL”query MyQuery ( $filter: StudentsFilter $first: Int $orderBy: StudentsOrderBy) { students( filter: $filter first: $first orderBy: $orderBy ) { count items { id firstName lastName age } }}Zmienne
Dział zatytułowany „Zmienne”{ "filter": { "email": { "contains": "example" }, "firstName": { "starts_with": "M" } }, "orderBy": { "lastName": "ASC"}, "first": 2}