Pular para o conteúdo

Variáveis

Para evitar codificar todos os valores ao trabalhar com GraphQL, o API Explorer fornece uma seção de Variáveis na qual um objeto JSON pode ser adicionado. As chaves de nível superior do objeto JSON são disponibilizadas como variáveis que têm nomes denotados por um cifrão ($KEY_NAME). Isso permite uma experiência de desenvolvimento muito mais agradável ao escrever e testar consultas, mutações e assinaturas dinâmicas.

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

alt text

Algumas entradas dinâmicas podem precisar ser adicionadas quando você envia uma solicitação para o seu servidor GraphQL, enquanto mantém o documento de operação o mesmo. Estas são as variáveis da sua operação. As variáveis devem ser argumentos tipados que são declarados na operação GraphQL. Como o GraphQL é tipado estaticamente, se você está passando as variáveis corretas pode ser validado para você.

Os dois exemplos a seguir funcionariam juntos para consultar uma lista de usuários com status “Ativo” e cujos nomes começam com “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

As variáveis não se limitam a ser valores de entrada únicos. Elas podem ser objetos complexos com qualquer tipo declarado em um determinado espaço de trabalho - nativo ou personalizado. Isso permite que coisas como filtros inteiros, classificações e muitos outros sejam passados dinamicamente como variáveis.

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