Проект представляет из себя сервис сохранения метрик с датчиков, и выдачи этих метрик через REST API.
Используемые технологии:
- Java 8
- Spring Boot (Data)
- Docker (docker-compose)
- Gradle
- JUnit
- MapStruct
- TestContainers
- Lombok
- Liquibase
- Postgresql
В корневом каталоге проекта находится скрипт run.sh, в нем прописан сценарий создания образа приложения, и автоматического запуска всех контейнеров. Нужно запустить этот скрипт и дождаться завершения выполнения. Затем сервис будет доступен по адресу localhost:8080
Скрипт миграции базы данных запуститься автоматически во время запуска приложения.
Для запуска интеграционных тестов нужно перейти в основной каталог и выполнить команду gradlew test. Проект использует TestContainters фреймворк для запуска контейнера с базой данных PostgreSQL для интеграционных тестов.
Жизненный цикл контейнера управляется фреймворком, и будет удален по окончанию тестов.
/api/save- Сохранить список метрик./api/history- Выгрузить все измерения заданного датчика за заданный интервал времени./api/latest- Выгрузить текущие (последние на данных момент) значения всех датчиков для заданного объекта./api/avg- Выгрузить среднее из текущих значений датчиков для каждого объекта.