https://github.com/logaka/restapiservice
https://github.com/logaka/restapiservice
docker docker-compose java jwt project psql rest-api spring-boot swagger
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/logaka/restapiservice
- Owner: Logaka
- Created: 2025-02-05T18:22:23.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-12T17:53:54.000Z (over 1 year ago)
- Last Synced: 2025-06-08T11:04:32.067Z (about 1 year ago)
- Topics: docker, docker-compose, java, jwt, project, psql, rest-api, spring-boot, swagger
- Language: Java
- Homepage:
- Size: 25.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# REST API Сервис с использованием Spring Boot
Этот проект представляет собой REST API сервис, созданный с использованием Spring Boot, который принимает данные от условного "сенсора". Сенсор будет отправлять HTTP-запросы с измерениями, содержащими информацию о температуре и погодных условиях.
## Содержание
1. [Описание](#описание)
2. [Запуск проекта](#запуск-проекта)
3. [Документация OpenAPI](#документация-openapi)
4. [Настройки](#настройки)
5. [Аутентификация](#аутентификация)
## Описание
Этот проект реализует REST API, который получает данные от сенсора и обрабатывает их. Сервис поддерживает получение измерений, таких как температура и погодные условия, и предоставляет возможность хранения данных в базе данных. Сервис также использует Docker для контейнеризации и упрощения развертывания.
### Основные функции:
- Получение измерений от сенсора через HTTP-запросы.
- Хранение данных в базе данных PostgreSQL.
- Генерация и использование токенов JWT для аутентификации.
## Запуск проекта
### 1. Установите зависимости:
Для успешного запуска проекта убедитесь, что у вас установлены следующие инструменты:
- **Docker**: для контейнеризации приложения и базы данных.
- **Docker Compose**: для управления многоконтейнерными приложениями.
### 2. Соберите Docker-образ приложения:
Перейдите в корневую директорию проекта и выполните команду для сборки Docker-образа:
```bash
docker build .
```
### 3. Запустите контейнеры с помощью Docker Compose:
После успешной сборки образа, используйте Docker Compose для запуска приложения и базы данных:
```bash
docker-compose up --build -d
```
Это создаст и запустит два контейнера:
- Контейнер с приложением Spring Boot (порт 8080).
- Контейнер с базой данных PostgreSQL (порт 5454).
### 4. Проверка работы приложения:
После того как контейнеры запустятся, ваше приложение будет доступно по адресу:
```
http://localhost:8080
```
## Документация OpenAPI
Все описание API (эндпоинты, параметры и схемы) хранится в файле `openapi.yaml`, расположенном в папке:
```
src/main/resources/static/openapi.yaml
```
Вы можете использовать этот файл для интеграции с другими системами или для тестирования с помощью Swagger UI.
## Настройки
Для подключения к базе данных PostgreSQL и настройки приложения используйте следующие переменные окружения:
```yaml
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
```
Полученный токен нужно отправлять в заголовке вместе с запросом