Создание коннектора 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 это сообщение отправит на наш созданный вебсервис и в консоле процесса мы сможем увидеть информацию о нем:
Last updated