Структура маршрутів зовнішнього Kong API Gateway

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

Клієнтські додатки, які використовуються в системі, взаємодіють з сервісами, що надають доступ до фунционалу платформи за допомогою REST API. Даний документ містить інформацію про загальні положення при формуванні зовнішніх точок доступ та перелік доступних для використання методів.

1. Загальні положення

  • Усі зовнішні ендпоінти викликаються через Kong API Gateway

  • Усі виклики API повинні мати авторизаційний токен (зберігається в сессії Kong)

  • Система має 3 домену для кожної з підсистем та окремий на кожен адміністративний сервіс:

    • officer-portal

    • citizen-portal

    • admin-portal

  • Доступ до окремого ресурсу з кожного з кабінетів повинен бути доступний за відносним шляхом за наступним правилом та починатись з префіксу /api. Наприклад /api/forms для доступу до опису форм

  • Ресурси в API Gateway повинні бути зареєстровані в множині (/api/forms - /api/form)

  • Шлях до ендпоінтів не повинен містить ім’я сервісу, якому належить той, чи інший ресурс (/api/forms - /api/form-management)

  • Кожен окремий роут за замовчуванням надає доступ до всіх ресурсів цільового сервісу, що задовільняють вказаному патерну. Наприклад, ендпоінт /api/tasks надає в тому числі до методу POST /api/tasks/{id}/complete

2. Перелік ендпоінтів в системі (to be)

Route name Route host Route path Service name Service Path

admin-portal-home

admin-portal

/home

admin-portal

/home

admin-portal-root

admin-portal

/

admin-portal

/

admin-portal-logout

admin-portal

/logout

platform-keycloak

/auth/realms/{realm}/protocol/openid-connect/logout

admin-portal-userinfo

admin-portal

/api/userinfo

platform-keycloak

/auth/realms/{realm}/protocol/openid-connect/userinfo

admin-portal-forms

admin-portal

/api/forms

form-management-modeler

/

citizen-portal-home

citizen-portal

/home

citizen-portal

/home

citizen-portal-root

citizen-portal

/

citizen-portal

/

citizen-portal-logout

citizen-portal

/logout

platform-keycloak

/auth/realms/{realm}/protocol/openid-connect/logout

citizen-portal-userinfo

citizen-portal

/api/userinfo

platform-keycloak

/auth/realms/{realm}/protocol/openid-connect/userinfo

citizen-portal-forms

citizen-portal

/api/forms

form-management-provider

/

citizen-portal-documents

citizen-portal

/api/documents

digital-documents

/api/documents

citizen-portal-tasks

citizen-portal

/api/tasks

user-task-management

/api/citizen/tasks

citizen-portal-process-instances

citizen-portal

/api/process-instances

user-process-management

/api/citizen/process-instances

citizen-portal-process-definitions

citizen-portal

/api/process-definitions

user-process-management

/api/citizen/process-definitions

citizen-portal-history-process-instances

citizen-portal

/api/history/process-instances

user-process-management

/api/citizen/history/process-instances

citizen-portal-registry

citizen-portal

/api/registry

registry-rest-api

/

citizen-portal-user-settings

citizen-portal

/api/user-settings

user-settings-service-api

/settings

officer-portal-home

officer-portal

/home

officer-portal

/home

officer-portal-root

officer-portal

/

officer-portal

/

officer-portal-redash

officer-portal

/reports

redash-viewer

/

officer-portal-logout

officer-portal

/logout

platform-keycloak

/auth/realms/{realm}/protocol/openid-connect/logout

officer-portal-userinfo

officer-portal

/api/userinfo

platform-keycloak

/auth/realms/{realm}/protocol/openid-connect/userinfo

officer-portal-forms

officer-portal

/api/forms

form-management-provider

/

officer-portal-documents

officer-portal

/api/documents

officer-documents

/api/documents

officer-portal-tasks

officer-portal

/api/tasks

user-task-management

/api/officer/tasks

officer-portal-process-instances

officer-portal

/api/process-instances

user-process-management

/api/officer/process-instances

officer-portal-history-process-instances

officer-portal

/api/history/process-instances

user-process-management

/api/officer/history/process-instances

officer-portal-process-definitions

officer-portal

/api/process-definitions

user-process-management

/api/officer/process-definitions

officer-portal-history-process-instances

officer-portal

/api/history/process-instances

user-process-management

/api/officer/history/process-instances

officer-portal-registry

officer-portal

/api/registry

registry-rest-api

/

  • Перелік не містить системних роутів (наприклад, kong-proxy)

  • Перелік не містить прямих роутів для сервісів, що використовуються на оточеннях розробників

  • Розділ хост в таблиці спрощений та не містить імені проекту та dns wildcard (admin-portal → admin-portal.<openshift-project-name>.<dns-wildcard>)