Інтеграція із зовнішніми сервісами за допомогою REST-конектора
| 🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
REST Connector — це конектор для підключення до зовнішніх захищених сервісів/систем поза кластером Платформи.
Для налаштування конектора необхідно виконати наступні кроки.
1. Створення ServiceEntry
Для того, щоб запит на отримання зовнішніх ресурсів міг вийти за межі кластера Платформи, необхідно на рівні реєстру створити Service Entry — точку виходу трафіку за межі системи.
|
Service Entry створюється автоматично, після того, як адміністратор реєстру налаштує інтеграцію в адміністративній панелі Control Plane. Після застосування змін до конфігурації реєстру та проходження Jenkins-пайплайну За деталями налаштувань у консолі Control Plane зверніться до сторінки Налаштування взаємодії з іншими системами у Control Plane. |
|
Для версій реєстру 1.9.2 та нижче Service Entry створюється автоматично, після запуску пайплайну публікацій та розгортання змін до регламенту реєстру. |
Перевірити, що Service Entry створено, можна у списку ServiceEntries в OpenShift-консолі. Для цього:
-
Увійдіть до OpenShift консолі.
-
Перейдіть до меню
Home→API Explorer. У рядку пошукуFilter by kindвведіть значенняServiceEntry, в результатах фільтрування виберіть відповідний сервіс.
-
Виберіть реєстр з випадного списку
Project, в якому буде використовуватись зовнішній сервіс. Перейдіть до менюInstancesі знайдіть необхіднуServiceEntry.
2. Створення секрету для авторизації сервісу
|
Для версій реєстру 1.9.3 і вище не потрібно створювати секрети вручну в Openshift. Секрети (токен, пароль тощо) створюються автоматично після застосування налаштувань взаємодії з іншими системами, які необхідно виконати в адмін-панелі Control Plane. В результаті застосування змін до конфігурації реєстру та проходження Jenkins-пайплайну Зверніться до сторінки Налаштування взаємодії з іншими системами у Control Plane для отримання детальної інформації щодо налаштування взаємодії з іншими системами. |
Щоб створити секрет вручну, необхідно виконати наступні кроки:
-
В OpenShift консолі перейдіть до меню
Workloads→Secretsта оберіть відповідний проєкт з випадного спискуProject. НатиснітьCreate→Key/value secret.
-
Вкажіть назву секрету у полі
Secret name, наприклад,httpbin-basic-authentication.Назву секрету необхідно буде використати у параметрі secret-nameпри налаштуванні регламенту (див. детальніше у розділі Налаштування регламенту).
-
Доступно два типи аутентифікації сервісу:
-
Для типу аутентифікації
BASICнеобхідно додати два параметриKey:-
username -
password

-
-
Для типу аутентифікації
PARTNER_TOKENнеобхідно додати один параметрKey:-
token
-

-
-
У результаті успішного виконання налаштувань буде створено секрет, за допомогою якого можливо авторизуватися в зовнішньому сервісі.

3. Налаштування регламенту
|
Для версій реєстру 1.9.3+ та вище основні інтеграційні налаштування виконуються на рівні екземпляра реєстру в адміністративній панелі Control Plane (див. детальніше — Налаштування взаємодії з іншими системами у Control Plane).
Приклад 1. Налаштування external-systems у файлі bp-trembita/configuration.yml для версій реєстру 1.9.3+
|
Для версії реєстру 1.9.2 та нижче виконайте попередні конфігурації на рівні регламенту реєстру.
Для цього потрібно налаштувати параметри блоку external-systems у конфігураційному файлі bp-trembita/configuration.yml відповідного реєстру.
BASICexternal-systems:
httpbin:
url: http://httpbin.org/
methods:
get:
path: /get
method: GET
auth:
type: BASIC
secret-name: httpbin-basic-authentication
|
PARTNER_TOKENexternal-systems:
diia:
url: http://api2.diia.gov.ua
methods:
get-damaged-property:
path: /api/v1/public-service/damaged-property/filtered
method: GET
auth:
type: PARTNER_TOKEN
secret-name: secret2
partner-token-auth-url: https://api2t.diia.gov.ua/api/v1/auth/partner
token-json-path: $.token
4. Моделювання бізнес-процесу з використанням делегата Connect to external system
Для налаштування шаблону делегата в Camunda Modeler, необхідно виконати наступні кроки:
-
Створіть Service Task.
-
На панелі налаштувань справа натисніть кнопку Open Catalog, оберіть відповідний шаблон
Connect to external system v2зі списку та натисніть Apply для підтвердження.
-
Сконфігуруйте обраний шаблон:
-
У полі
Nameвкажіть назву задачі, наприклад,Створити запит (GET). -
Input Parameters:
-
Розгорніть блок
External system nameта вкажіть назву сервісу, з яким буде відбуватися взаємодія:-
Активуйте позначку
Local Variable Assignment→ON. Це дозволить створити локальну змінну для метода. -
У полі
Variable Assignment Typeоберіть з випадного списку тип призначення змінної —String or Expression. -
У полі
Variable Assignment Valueвведіть назву сервісу —httpbin.
-
-
Розгорніть блок
External system method nameта вкажіть HTTP-метод для взаємодії з сервісом:-
Активуйте позначку
Local Variable Assignment→ON. Це дозволить створити локальну змінну для метода. -
У полі
Variable Assignment Typeоберіть з випадного списку тип призначення змінної —String or Expression. -
У полі
Variable Assignment Valueвведіть назву методу —get.
-
-
Розгорніть блок
Request parametrs(використовується для методу GET) та вкажіть необхідні параметри запиту:-
Активуйте позначку
Local Variable Assignment→ON. Це дозволить створити локальну змінну для метода. -
У полі
Variable Assignment Typeоберіть з випадного списку тип призначення змінної —Map.-
Keyвкажіть ключ параметра запита. -
Valueвкажіть значення параметра запита.
-
-
-
Розгорніть блок
Additional request headersта вкажіть додаткові заголовки запиту:-
Активуйте позначку
Local Variable Assignment→ON. Це дозволить створити локальну змінну для метода. -
У полі
Variable Assignment Typeоберіть з випадного списку тип призначення змінної —Map.-
Keyвкажіть ключ заголовка запита. -
Valueвкажіть значення заголовка запита.
-
-
-
Блок
Request payloadвикористовується для POST і PUT методів запиту.
-
-
Output Parameters:
-
Розгорніть блок
Result variableта вкажіть назву змінної процесу, до якої необхідно записати результат (за замовчуванням —response): -
Активуйте позначку
Process Variable Assignment→ON. -
У полі
Assign to Process Variableвведіть назву результівної змінної (за замовчуванням —response).
-
-