Создание нового микросервиса (backend)¶
Демонстрационный сервис¶
Демонстрационный сервис представляет собой стандартный Spring Boot проект с добавленными настройками, позволяющими включить его в Платформу в качестве сервиса документов.
Необходимые предусловия для начала разработки и запуска¶
-
Для разработки документного сервиса на основе шаблона, билда и запуска демонстрационного сервиса необходимо иметь доступ к развернутой Платформе локально или удаленно.
-
Для запуска сервиса в Системе должны быть предварительно запущены и функционировать:
- сервис предоставления токена аутентификации (Keycloak);
- сервис «Реестр микросервисов» (dh-registry-service);
- сервис «Управление настройками» (dh-configuration-service) (опционально);
- сервис «Управление функциональным доступом» (dh-accessrights-service);
- сервис «Управление моделью данных» (dh-datamodel-service).
-
Сервис требует PostgreSQL >=13.0<14.0.
-
Предварительно должны быть созданы пустые базы данных, указанные в настройках сервисов «Управление функциональным доступом», «Управление моделью данных» и данного сервиса (dh_accessrights_db, dh_datamodel_db, dh_demodoc_db).
-
В сервисе «Управление функциональным доступом» должны быть настроены модели и политики, допускающие работу с API и БД данного (разрабатываемого) сервиса.
-
В файле настроек «application.yml» (или, при использовании внешних настроек, в сервисе «Управление настройками») должны быть заданы все необходимые переменные (placeholders). Для дальнейшего развертывания на сервисе в файле настроек «application.yml» предусмотрены переменные окружения.
-
Библиотеки Платформы передаются в локальном репозитории проекта в директории «lib». Зависимости решаются Maven при сборке проекта.
-
Для решения версий зависимостей Платформы предлагается файл «dh-bom.pom», предоставляющий:
- родительскую версию Spring Boot;
- общие свойства Maven;
- необходимые версии зависимостей библиотек;
- преднастроенные плагины Maven.
-
Сервис собирается стандартной командой Maven mvn clean install.
-
Для облегчения локальной разработки в корне проекта передается файл «docker-compose.yml» с собранными и готовыми для запуска:
- базами данных PostgreSQL dh_accessrights_db, dh_datamodel_db, dh_demodoc_db – создаются при первом запуске контейнера и сохраняются в docker/postgres-data проекта;
- сервисом «Реестр микросервисов»;
- сервисом «Управление функциональным доступом»;
- сервисом «Управление моделью данных».
Все данные для запуска контейнера находятся в директории «docker».
Разработка документного сервиса в Платформе¶
Для разработки прикладного документного сервиса необходимо:
-
Взять за основу шаблон.
-
Создать новое пустое Spring Boot приложение и добавить в него из данного сервиса файл «pom.xml» и файл настроек «application.yml». Данные файлы в заархивированном виде располагаются в папке с установочным комплектом.
-
В главном классе приложения добавить настройку времени: TimeZone.setDefault(TimeZone.getTimeZone(ZoneId.of("UTC"))).
-
Скопировать целиком пакет «ru.docshouse.demodoc.configuration» со всеми содержащимися в нем классами конфигураций.
Для Spring Boot выбрать любую стабильную версию с «мажорным» значением «3». Для Java выбрать значение «25».