Интеграция с GraphQL
Описание
В данном примере описывается последовательность действий по настройке GraphQL‑коннектора и созданию маршрута, выполняющего GraphQL‑запрос и обрабатывающего полученный JSON‑ответ.
Процесс взаимодействия с GraphQL состоит из следующих шагов:
-
Устанавливаем фичу camel-graphql:
feature:install -r camel-graphql -
Проверяем, что установленный бандл находится в статусе Active:
684 │ Active │ 50 │ 3.4.5 │ camel-graphql -
Создаем профиль системы
graphqlи добавляем к нему выходной кастомный коннектор.
В точке кастомизации custom-route создаем маршрут, который который выполняет GraphQL-запрос к указанной конечной точке и логирует полученный результат:<?xml version="1.0" encoding="UTF-8"?> <entaxy:object-route xmlns="http://camel.apache.org/schema/blueprint" xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:entaxy="http://www.entaxy.ru/schemas/1.0" xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0"> <m:log message="Custom graphql output route start"/> <to uri="graphql://https://countries.trevorblades.com?query={continents{name countries{name capital}}}"/> <m:log message="GL completed: ${body}"/> </entaxy:object-route> -
К выходному кастомному коннектору добавляем маршрут на базе компонента таймер, инициирующий вызов коннектора с заданным интервалом:
<?xml version="1.0" encoding="UTF-8"?> <entaxy:common-route xmlns="http://camel.apache.org/schema/blueprint" xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:entaxy="http://www.entaxy.ru/schemas/1.0" xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0"> <m:log message="in route ${routeId}" loggingLevel="INFO"/> <to uri="system:graphql?connectorClassifier=main"/> </entaxy:common-route> -
Убеждаемся, что в логах отображается JSON-ответ сервера.