Этот проект представляет собой API-интерфейс Spring Boot Rest с использованием Spring Security and JWT для аутентификации и авторизации пользователя. Это простой рест сервис который реализует серверную часть онлайн-чата. Предполагается использование простых CRUD-операций над сообщениями, комнатами, пользователями, ролями.
Java 16, Spring (Boot, Data JPA, Web, Security), PostgreSQL, Liquibase, Maven
- Скопируйте файлы репозитория в подготовленную директорию
- Перейдите в директорию и соберите проект в jar-файл
mvn clean install
- Собирите docker-образ проекта
docker build -t chat .
- Запустите проект через docker-compose
docker-compose up
- Приложение будет доступно по адресу: http://localhost:8080
GET /users
- получить всех пользователейGET /users/{id}
- получить пользователя по idGET /users/{id}/role
- получить роль пользователя по id пользователяGET /users/{id}/rooms
- получить список комнат, в которых состоит пользователь по id пользователяPOST /users/sign-up
- создать пользователяPOST /login
- получить токен пользователя (в теле передает username и password созданного пользователя)PUT /users
- обновить данные пользователя или создать новогоPUT /users/{id}/role
- обновить роль пользователя по id пользователяPUT /users/{id}/rooms
- добавить комнату пользователю (зайти в комнату) по id пользователяPATCH /users
- обновить данные существующего пользователяDELETE /users/{id}
- удалить пользователя по idDELETE /users/{id}/role
- удалить роль пользователя по id пользователяDELETE /users/{id}/rooms/{roomId}
- удалить комнату пользователя (выйти из комнаты) по id пользователя и id комнаты
GET /roles
- получить все ролиGET /roles/{id}
- получить роль по idPOST /roles
- создать рольPUT /roles
- обновить данные роли или создать новуюPATCH /roles
- обновить данные существующей ролиDELETE /roles/{id}
- удалить роль по id
GET /rooms
- получить все комнатыGET /rooms{id}
- получить комнату по idPOST /rooms
- создать комнатуPUT /rooms
- обновить данные комнаты или создать новуюPATCH /rooms
- обновить данные существующей комнатыDELETE /rooms/{id}
- удалить комнату по id
GET /messages
- получить все сообщенияGET /messages/{id}
- получить сообщение по idPOST /messages
- создать сообщениеPUT /messages
- обновить данные сообщения или создать новоеPATCH /messages
- обновить данные существующего сообщенияDELETE /messages/{id}
- удалить сообщение по id