Переменные
Чтобы избежать жёсткого кодирования всех значений при работе с GraphQL, API Explorer предоставляет раздел Variables, в который можно добавить JSON-объект. Ключи верхнего уровня JSON-объекта становятся доступными как переменные с именами, обозначенными знаком доллара ($KEY_NAME). Это обеспечивает гораздо более приятный опыт разработки при написании и тестировании динамических запросов, мутаций и подписок.
GraphQL мутация
Заголовок раздела «GraphQL мутация»query MyQuery1 ($domain: String) { students( filter: { email: { contains: $domain } } ) { items { id firstName email } }}Переменные
Заголовок раздела «Переменные»{ "domain": "example.com"}
Объявление переменных
Заголовок раздела «Объявление переменных»Некоторые динамические входные данные могут потребоваться при отправке запроса на ваш сервер GraphQL, в то время как документ операции остаётся неизменным. Это переменные вашей операции. Переменные должны быть типизированными аргументами, объявленными в операции GraphQL. Поскольку GraphQL статически типизирован, можно проверить, передаёте ли вы правильные переменные.
Следующие два примера будут работать вместе для запроса списка пользователей со статусом “Активный” и именами, начинающимися с “M”.
GraphQL мутация
Заголовок раздела «GraphQL мутация»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}
Объявление типизированных переменных
Заголовок раздела «Объявление типизированных переменных»Переменные не ограничены одиночными входными значениями. Они могут быть сложными объектами с любым объявленным типом в данном рабочем пространстве — нативным или пользовательским. Это позволяет динамически передавать такие вещи, как целые фильтры, сортировки и многое другое в качестве переменных.
GraphQL мутация
Заголовок раздела «GraphQL мутация»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}