Універсальний конектор для виклику Trembita Rest API
1. Загальний опис
На цей час комунікація з учасниками інформаційного обміну через ШБО "Трембіта" відбувається лише з використанням SOAP протоколу через типові специфічні SOAP-конектори (з ЄДР, ДРАЦС, ЄІБДВПО) або через універсальний SOAP-конектор.
Водночас ШБО "Трембіта" надає можливість комунікувати зі своїми сервісами через REST.
Наразі Платформа не надає користувачу можливості зручної інтеграції з ШБО для подібних випадків.
Необхідно надати користувачам Платформи можливість через зручний інтерфейс виконувати налаштування взаємодії з ШБО "Трембіта" через REST та відповідний Trembita-REST-конектор для гнучкого моделювання точок інтеграції на рівні бізнес-процесів в залежності від вимог.
2. Функціональні сценарії
-
Налаштування технічним адміністратором реєстру інформації про учасників інформаційного обміну Трембіта через REST-інтеграцію
-
Моделювання точок інтеграції з налаштованим учасником інформаційного обміну на рівні бізнес-процесів з використанням універсального Trembita-REST-конектора.
3. Ролі користувачів
-
Технічний адміністратор реєстру
-
Розробник регламенту
5. Високорівневий дизайн рішення
Дана функціональність використовує механізми закладені в дизайні Управління налаштуваннями та секретами зовнішніх інтеграцій. |
5.1. Налаштування інтеграцій через Центр управління платформою
5.1.1. Інтерфейси адміністратора
Екран конфігурації реєстру
control-plane-gerrit:<registry>.git
trembita:
registries:
edrlike-registry:
url: "https://trembita.mdtu-ddm.projects.epam.com"
type: "registry"
protocol: "REST"
client:
x-road-instance: "THIS-REGISTRY"
member-class: "GOV"
member-code: "CODE"
subsystem-code: "Platform-registry"
service:
x-road-instance: "THAT-REGISTRY"
member-class: "GOV"
member-code: "CODE"
subsystem-code: "EdrLike-system"
# опційний блок авторизації
auth:
type: "AUTH_TOKEN"
secret: "vault:registry-kv/registry/<registry>/trembita-registries/<trembita-registry-name>"
5.2. Налаштування інтеграцій на рівні регламенту
# new block on the same level as external-systems:
trembita:
registries:
edrlike-registry:
operations:
get-subject:
resource-path: "/api/subject"
method: "GET"
create-subject:
resource-path: "/api/subject"
method: "POST"
5.3. Створення ConfigMap ресурсів при публікації змін регламенту
kind: ConfigMap
apiVersion: v1
metadata:
name: trembita-rest-endpoint-configuration
namespace: <registry-namespace>
data:
trembita-rest-endpoint-configuration.yml: |
trembita:
registries:
edrlike-registry:
operations:
get-subject:
resource-path: "/api/subject"
method: "GET"
create-subject:
resource-path: "/api/subject"
method: "POST"
6. Моделювання регламенту реєстру
6.1. Новий Trembita-REST-конектор
Новий конектор є схожим на стандартний REST-конектор, вже наявний у платформі, проте додається специфіка, необхідна для запитів через Трембіта
6.1.2. Заголовки
Обов’язковими є заголовки Uxp-Client та Uxp-Service, які заповнюються відповідно до формату
Також можна передавати інші заголовки, необхідні за специфікацією реєстру, до якого виконується запит
6.1.3. Тіло/Параметри запиту
Не стандартизовані, надаються для окремих реєстрів
6.1.4. Конфігурація конектора
Конфігураційний параметр | Вхідний/Вихідний | Тип | Опис |
---|---|---|---|
Службова назва реєстру учаснику ШБО "Трембіта" |
in |
string |
Назва яка була вказана в якості службової при створенні конфігурації в адміністративній консолі |
Назва операції |
in |
string |
Назва операції, яка буде виконуватись (з регламенту trembita.registries.<>.operations) |
Заголовки запиту |
in |
string |
Додаткові необхідні заголовки запиту |
Параметри запиту |
in |
string |
Необхідні параметри запиту (request params) |
Дані запиту |
in |
string |
Необхідне тіло запиту |
Вихідний результат запиту |
out |
string |
Строкове представлення відповіді від ШБО "Трембіта" |
7. Високорівневий план розробки
7.1. Технічні експертизи
-
BE (Java, Go)
7.2. План розробки
-
Створення нового розширення для camunda (
bpms
) -
Розширення функціональності адмін консолі (
control-plane
) можливістю додавати нові реєстри для інтеграції через ШБО "Трембіта" REST. -
Створення додаткових валідаційних правил регламенту (
registry-regulation-validator-cli
) -
Створення референтного прикладу бізнес-процесу з використання конектору
-
Створення інструкцій для технічного адміністратора та розробника регламенту