Этот проект представляет собой REST API сервис, созданный с использованием Spring Boot, который принимает данные от условного "сенсора". Сенсор будет отправлять HTTP-запросы с измерениями, содержащими информацию о температуре и погодных условиях.
Этот проект реализует REST API, который получает данные от сенсора и обрабатывает их. Сервис поддерживает получение измерений, таких как температура и погодные условия, и предоставляет возможность хранения данных в базе данных. Сервис также использует Docker для контейнеризации и упрощения развертывания.
- Получение измерений от сенсора через HTTP-запросы.
- Хранение данных в базе данных PostgreSQL.
- Генерация и использование токенов JWT для аутентификации.
Для успешного запуска проекта убедитесь, что у вас установлены следующие инструменты:
- Docker: для контейнеризации приложения и базы данных.
- Docker Compose: для управления многоконтейнерными приложениями.
Перейдите в корневую директорию проекта и выполните команду для сборки Docker-образа:
docker build .После успешной сборки образа, используйте Docker Compose для запуска приложения и базы данных:
docker-compose up --build -dЭто создаст и запустит два контейнера:
- Контейнер с приложением Spring Boot (порт 8080).
- Контейнер с базой данных PostgreSQL (порт 5454).
После того как контейнеры запустятся, ваше приложение будет доступно по адресу:
http://localhost:8080
Все описание API (эндпоинты, параметры и схемы) хранится в файле openapi.yaml, расположенном в папке:
src/main/resources/static/openapi.yaml
Вы можете использовать этот файл для интеграции с другими системами или для тестирования с помощью Swagger UI.
Для подключения к базе данных PostgreSQL и настройки приложения используйте следующие переменные окружения:
SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5454/postgres
SPRING_DATASOURCE_USERNAME=postgres
SPRING_DATASOURCE_PASSWORD=postgres
SPRING_DATASOURCE_DRIVER=org.postgresql.Driver
SPRING_JPA_HIBERNATE_DDL_AUTO=updateЭти параметры настроены в Docker Compose и автоматически применяются при запуске контейнеров.
- Spring Boot: основная платформа для разработки REST API.
- PostgreSQL: база данных для хранения измерений.
- Docker: для контейнеризации приложения и базы данных.
- Docker Compose: для упрощения управления многоконтейнерными приложениями.
- JWT: для аутентификации пользователей.
- OpenAPI: для описания API.
Перед тем как пользоваться нужно зарегестрировать "сенсор" по эндпойнту
http://localhost:8080/sensors/regisrtation
После нужно получить токен для работы с другими эндпойнтами по адресу
http://localhost:8080/sensors//generateToken
Полученный токен нужно отправлять в заголовке вместе с запросом