Variabelen
Om te voorkomen dat alle waarden hard worden gecodeerd bij het werken met GraphQL, biedt de API Explorer een sectie Variabelen waarin een JSON-object kan worden toegevoegd. De sleutels op het hoogste niveau van het JSON-object worden beschikbaar gemaakt als variabelen die namen hebben die worden aangeduid met een dollarteken ($KEY_NAME). Dit zorgt voor een veel aangenamere ontwikkelervaring bij het schrijven en testen van dynamische queries, mutaties en abonnementen.
GraphQL Mutatie
Section titled “GraphQL Mutatie”query MyQuery1 ($domain: String) { students( filter: { email: { contains: $domain } } ) { items { id firstName email } }}Variabelen
Section titled “Variabelen”{ "domain": "example.com"}
Variabelen Declareren
Section titled “Variabelen Declareren”Sommige dynamische invoer moet mogelijk worden toegevoegd wanneer u een verzoek naar uw GraphQL-server verzendt, terwijl het operatiedocument hetzelfde blijft. Dit zijn de variabelen van uw operatie. Variabelen moeten getypeerde argumenten zijn die in de GraphQL-operatie worden gedeclareerd. Omdat GraphQL statisch is getypeerd, kan worden gevalideerd of u de juiste variabelen doorgeeft.
De volgende twee voorbeelden zouden samenwerken om een lijst met gebruikers op te vragen met de status “Actief” en wiens namen beginnen met “M”.
GraphQL Mutatie
Section titled “GraphQL Mutatie”query MyQuery1($name_start: String, $status: Boolean) { students( filter: { firstName: { starts_with: $name_start }, isActive: { equals: $status } } ) { items { id firstName email } }}Variabelen
Section titled “Variabelen”{ "name_start": "M", "status": true}
Getypeerde Variabelen Declareren
Section titled “Getypeerde Variabelen Declareren”Variabelen zijn niet beperkt tot enkele invoerwaarden. Het kunnen complexe objecten zijn met elk gedeclareerd type in een bepaalde werkruimte - native of aangepast. Hierdoor kunnen zaken als volledige filters, sorteringen en vele andere dynamisch als variabelen worden doorgegeven.
GraphQL Mutatie
Section titled “GraphQL Mutatie”query MyQuery ( $filter: StudentsFilter $first: Int $orderBy: StudentsOrderBy) { students( filter: $filter first: $first orderBy: $orderBy ) { count items { id firstName lastName age } }}Variabelen
Section titled “Variabelen”{ "filter": { "email": { "contains": "example" }, "firstName": { "starts_with": "M" } }, "orderBy": { "lastName": "ASC"}, "first": 2}