Создание нового микросервиса (backend)

Демонстрационный сервис

Демонстрационный сервис представляет собой стандартный Spring Boot проект с добавленными настройками, позволяющими включить его в Платформу в качестве сервиса документов.

Необходимые предусловия для начала разработки и запуска

  1. Для разработки документного сервиса на основе шаблона, билда и запуска демонстрационного сервиса необходимо иметь доступ к развернутой Платформе локально или удаленно.

  2. Для запуска сервиса в Системе должны быть предварительно запущены и функционировать:

    • сервис предоставления токена аутентификации (Keycloak);
    • сервис «Реестр микросервисов» (dh-registry-service);
    • сервис «Управление настройками» (dh-configuration-service) (опционально);
    • сервис «Управление функциональным доступом» (dh-accessrights-service);
    • сервис «Управление моделью данных» (dh-datamodel-service).
  3. Сервис требует PostgreSQL >=13.0<14.0.

  4. Предварительно должны быть созданы пустые базы данных, указанные в настройках сервисов «Управление функциональным доступом», «Управление моделью данных» и данного сервиса (dh_accessrights_db, dh_datamodel_db, dh_demodoc_db).

  5. В сервисе «Управление функциональным доступом» должны быть настроены модели и политики, допускающие работу с API и БД данного (разрабатываемого) сервиса.

  6. В файле настроек «application.yml» (или, при использовании внешних настроек, в сервисе «Управление настройками») должны быть заданы все необходимые переменные (placeholders). Для дальнейшего развертывания на сервисе в файле настроек «application.yml» предусмотрены переменные окружения.

  7. Библиотеки Платформы передаются в локальном репозитории проекта в директории «lib». Зависимости решаются Maven при сборке проекта.

  8. Для решения версий зависимостей Платформы предлагается файл «dh-bom.pom», предоставляющий:

    • родительскую версию Spring Boot;
    • общие свойства Maven;
    • необходимые версии зависимостей библиотек;
    • преднастроенные плагины Maven.
  9. Сервис собирается стандартной командой Maven mvn clean install.

  10. Для облегчения локальной разработки в корне проекта передается файл «docker-compose.yml» с собранными и готовыми для запуска:

    • базами данных PostgreSQL dh_accessrights_db, dh_datamodel_db, dh_demodoc_db – создаются при первом запуске контейнера и сохраняются в docker/postgres-data проекта;
    • сервисом «Реестр микросервисов»;
    • сервисом «Управление функциональным доступом»;
    • сервисом «Управление моделью данных».

Все данные для запуска контейнера находятся в директории «docker».

Разработка документного сервиса в Платформе

Для разработки прикладного документного сервиса необходимо:

  1. Взять за основу шаблон.

  2. Создать новое пустое Spring Boot приложение и добавить в него из данного сервиса файл «pom.xml» и файл настроек «application.yml». Данные файлы в заархивированном виде располагаются в папке с установочным комплектом.

  3. В главном классе приложения добавить настройку времени: TimeZone.setDefault(TimeZone.getTimeZone(ZoneId.of("UTC"))).

  4. Скопировать целиком пакет «ru.docshouse.demodoc.configuration» со всеми содержащимися в нем классами конфигураций.

Для Spring Boot выбрать любую стабильную версию с «мажорным» значением «3». Для Java выбрать значение «25».