Проект представляет собой REST API чата с комнатами.
- Spring (Boot, Data JPA, Web, Security (JWT))
- PostgreSQL, Liquibase
- Maven
- Jackson
- ModelMapper
- Установите и запустите Docker Compose или Docker Desktop
- Склонируйте этот репозиторий
- Создайте image выполнив
mvn clean install && docker build -t chat .из корня проекта - Запустите контейнеры с помощью команды
docker-compose up - Проверьте работоспособность
| Команда | Запрос | Ответ |
|---|---|---|
| Регистрация | POST https://sitename/person/sign-up Body: {name: "Pavel", login: "pavel_123", password: "123456"} |
Код состояния: 200 |
| Авторизация | POST https://sitename/login Body: {login: "pavel_123" , password: "123456"} |
Код состояния: 200 OR 403 Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..." |
| Команда | Запрос | Ответ |
|---|---|---|
| Получить все сообщения | GET https://sitename/message/ Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..." |
Код состояния:200 Header: "Content-Type: application/json" Body: [{"id":5,"text":"Сообщение 1","created":"2021-10-19T09:50:58.350542","personId":1,"roomId":1},...] |
| Получить сообщение по id | GET https://sitename/message/5 Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..." |
Код состояния:200 Header: "Content-Type: application/json" Body: {"id":5,"text":"Сообщение 1","created":"2021-10-19T09:50:58.350542","personId":1,"roomId":1} |
| Создать новое сообщение | POST https://sitename/message/ Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..., "Content-Type: application/json", Body: {"text":"Новое сообщение","personId":1,"roomId":2" |
Код состояния:201 Header: "Content-Type: application/json" Body: {"id":12,"text":"Новое сообщение","created":"2021-10-19T17:21:44.8859788","personId":1,"roomId":2} |
| Обновить сообщение (вариант 1) | PUT https://sitename/message/ Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..., "Content-Type: application/json", Body: {"id":12, "text":"Новое сообщение","personId":1,"roomId":2" |
Код состояния: 200 |
| Обновить сообщение (вариант 2) | PATCH https://sitename/message/ Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..., "Content-Type: application/json", Body: {"id":12, "text":"Новое сообщение"} |
Код состояния: 200 |
| Удалить сообщение по id | DELETE https://sitename/message/5 Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q... |
Код состояния: 200 |
| Команда | Запрос | Ответ |
|---|---|---|
| Получить список всех комнат | GET https://sitename/room/ Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..." |
Код состояния:200 Header: "Content-Type: application/json" Body: [{"id":1,"name":"Room1"},...] |
| Получить комнату по id (со списком сообщений) | GET https://sitename/room/1 Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..." |
Код состояния:200 Header: "Content-Type: application/json" Body: {"id":1,"name":"Room1", "messages":[{"id":1,"text":"Сообщение 1","created":"2021-10-19T10:05:11.019532", "person":{"id":2,"name":"user 2","login":"user2","role":{"id":1,"authority":"ROLE_USER"}},"room":1},...]} |
| Создать новую комнату | POST https://sitename/room/ Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..., "Content-Type: application/json", Body: {"name":"Новая комната"} |
Код состояния:201 Header: "Content-Type: application/json" Body: {"id":4,"name":"Новая комната","messages":[]} |
| Обновить комнату (вариант 1) | PUT https://sitename/room/ Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..., "Content-Type: application/json", Body: {"id":4, "name":"Обновленная комната"} |
Код состояния: 200 |
| Обновить комнату (вариант 2) | PATCH https://sitename/room/ Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..., "Content-Type: application/json", Body: {"id":4, "name":"Обновленная комната"} |
Код состояния: 200 |
| Удалить комнату по id | DELETE https://sitename/room/4 Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q... |
Код состояния: 200 |