Интеграция с GraphQL

Описание

В данном примере описывается последовательность действий по настройке GraphQL‑коннектора и созданию маршрута, выполняющего GraphQL‑запрос и обрабатывающего полученный JSON‑ответ.

Процесс взаимодействия с GraphQL состоит из следующих шагов:

  1. Устанавливаем фичу camel-graphql:

    feature:install -r camel-graphql
  2. Проверяем, что установленный бандл находится в статусе Active:

    684 │ Active │ 50 │ 3.4.5 │ camel-graphql
  3. Создаем профиль системы 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>
  4. К выходному кастомному коннектору добавляем маршрут на базе компонента таймер, инициирующий вызов коннектора с заданным интервалом:

    <?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>
  5. Убеждаемся, что в логах отображается JSON-ответ сервера.