Создание коннектора webservice

Пример создание собственного коннектора вебсервиса

В качестве примера мы создадим простой коннектор вебсервис для получения сообщений от VIber. Данный коннектор будет автоматически подписываться на обновления Viber и передавать данные полученного сообщения следующим коннекторам.

Для начала создайте новый процесс для отладки нашего будующего коннектора

После этого откройте Библиотеку коннекторов нажав на ссылку Add connector в правом углу редактора процесса. После этого откроется библиотека доступных коннекторов.

Библиотека коннекторов

Далле выберите пункт Upload connector в правом верхнем углу для загрузки нового коннектора, после нажатия которого откроется редактор нового коннектора

Редактор нового коннектора

В редакторе коннектора доступны следующие основные секции:

  • General - общая информация о коннекторе, такая, как: название, описание, тип, версия и подробная информация. В этой секции также можно загрузить изображение для нашего коннектора.

  • Schema - раздел, где необходимо описать все методы нашего коннектора, а также входные и исходящие схемы данных для каждого метода.

  • Code - раздел где редактируется основной код бизнес-логики коннектора.

  • Install handler - раздел где задается обработчик коннектора, который будет выполнен при инициализации коннектора в процессе.

  • NPM modules - раздел, где добавляются NPM модули коннектора, которые будут необходимы для его работы.

Шаг 1. Заполнение общей информации о коннекторе

На вкладке General заполните название, описание, версию создаваемого коннектора, а также загрузите картинку.

Так как мы создаем коннектор вебсервис, который будет принимать запросы от Viber, то параметр Type должен быть со значением Webservice.

Шаг 2. Описание методов и схемы коннектора

Вкладка Schema имеет 3 основных поля для описания схем данных коннектора

  • Methods - методы коннектора

  • Input schema - описание входной схемы данных в зависимости от метода

  • Output schema - описание исходящей схемы данных в зависимости от метода

Описание методов коннектора

Сперва опишем методы нашего коннектора. Так как мы будем принимать только сообщения, то метод у нас будет только один, назовем его default

Так как Viber в некоторых случаях присылает запросы с помощью GET и POST, поэтому в секции http_methods для нашего метода необходимо указать оба этих типа.

Описание схемы для входных данных

Коннекторы вебсервисы не имеют коннекторов перед собой и запускаются только если поступил соответствующий HTTP запрос. Поэтому схема входных данных может содержать только те данные, которые пользователь может заполнить в настройках коннектора с помощью UI компонентов.

Для работы с Viber нам необходимо предоставить пользователю возможность заполнить в настройках коннектора следующие параметры:

  • Токен (X-Viber-Auth-Token)

  • Endpoint (action) - параметр, формирующий полный URL нашего вебхука

С учетом этих данных опишем схему, с использованием параметров Presenter, чтобы дать возможность позже редактировать значение параметров в настройках коннектора.

Описание схемы для исходящих данных

Предварительно ознакомившись с API Viber мы знаем, что будет получать следующий формат данных:

Для наших целей, мы немного оптимизируем схему данных, которые будет отдавать наш коннектор в следующий вид:

С учетом оптимизированной схемы, опишем схему исходящих данных для нашего коннектора

Шаг 3. Основной код коннектора

Во вкладке Code необходимо написать основной код нашего коннектора, который будет работать с запросом от Viber, в котором коннектор распарсит входные данные, и передаст их в контексте следубщим коннекторам.

Шаг 4. Установка предобработчика installHandler

Viber требует чтобы наш вебсервис был предварительно зарегистрирован. Для этих целей идеально подходит предобработчик installHandler, который позволит в момент инициализации коннектора подписать наш создаваемый вебхук на события в Viber избавив пользователей от ручной регистрации вебхуков.

Опишем следующий код, который позволит автоматически зарегистрировать наш вебхук.

Шаг 5. Сохраняем коннектор и тестируем

После того, как мы описали весь функционал нового коннектора, необходимо его сохранить, после чего он появится в Библиотеке коннектов и можно приступать к его тестированию.

Для тестирования мы добавим в процесс наш новый коннектор и коннектор Expression, в котором напишем вывод поступающих через контекст данных от нашего коннектора к Viber с помощью кода: console.log(ctx.data.data);

Отладочный процесс

В настройках коннектора к Viber заполним Endpoint и токен

Настройки коннектора Viber

После чего запустим процесс и отправим сообщение через Viber нашему пользователю. В свою очередь Viber это сообщение отправит на наш созданный вебсервис и в консоле процесса мы сможем увидеть информацию о нем:

Last updated

Was this helpful?