Взаимодействие клиентского приложения с GraphQL-сервером работает следующим образом: 1
- Определение полей. 1 Для этого в корневых запросах и мутациях объявляются применяемые в приложении типы данных и функции-распознаватели, обрабатывающие запрос и возвращающие информацию для конкретного поля. 1
- Направление запроса. 1 Пользователь (точнее, программа-клиент) направляет запрос на получение данных или на их изменение. 2
- Обработка запроса сервером. 1 Сервер обрабатывает запрос в соответствии с присоединённой к нему схемой и выдаёт соответствующую структуру данных. 1
В отличие от архитектуры REST, этот процесс не требует наличия нескольких эндпойнтов для каждого источника информации — все данные передаются через один шлюз уже отфильтрованными схемой. 1 То есть клиент получает именно ту информацию, которую он запрашивал. 1