Job4j_chat - REST API для приложения "чат с комнатами".
Использованы технологии:
- Spring Boot 2:
- Spring Web MVC
- Spring Data JPA
- Spring Security / JWT authorization
- Spring Validator
- DTO (Data Transport Object)
- Java 11
- PostgreSQL
- Maven
- Tomcat
Команда | Запрос | Ответ |
---|---|---|
Регистрация |
POST https://sitename/person/sign-up Body: { "nickname": "User", "username": "user@local", "password": "123" } |
Код состояния: 201 Body: { "id": 1, "nickname": "User", "username": "user@local", "password": "$2a$10$V4...", "authority": "ROLE_USER" } |
Авторизация |
POST https://sitename/login Body: { "username": "user@local" , "password": "123" } |
Код состояния: 200 OR 403 Header: "Authorization: Bearer eyJ0eXAiO..." |
Команда | Запрос | Ответ |
---|---|---|
Получить список всех комнат | GET https://sitename/room/ Header: "Authorization: Bearer eyJ0eXAiO..." |
Код состояния: 200 Header: "Content-Type: application/json" Body: [ { "id": 1, "name": "First room", "personId": 5 }, { "id": 2, "name": "Second room", "personId": 5 }, ... ] |
Получить комнату по id | GET https://sitename/room/1 Header: "Authorization: Bearer eyJ0eXAiO..." |
Код состояния: 200 (или 404 NOT FOUND) Header: "Content-Type: application/json" Body: { "id": 1, "name": "First room", "personId": 5 } |
Создать новую комнату | POST https://sitename/room/ Header: "Authorization: Bearer eyJ0eXAiO..." "Content-Type: application/json", Body: { "name": "Another room", "personId": 5 } |
Код состояния: 201 Header: "Content-Type: application/json" Body: { "id": 11, "name": "Another room", "personId": 5 } |
Обновить комнату (все поля) | PUT https://sitename/room/11 Header: "Authorization: Bearer eyJ0eXAiO..." "Content-Type: application/json", Body: { "name": "Updated room", "personId": 5 } |
Код состояния: 200 Header: "Content-Type: application/json" Body: { "id": 11, "name": "Updated room", "personId": 5 } |
Обновить комнату (частично) | PATCH https://sitename/room/11 Header: "Authorization: Bearer eyJ0eXAiO..." "Content-Type: application/json", Body: { "name": "Patched room" } |
Код состояния: 200 Header: "Content-Type: application/json" Body: { "id": 11, "name": "Patched room", "personId": 5 } |
Удалить комнату по id | DELETE https://sitename/room/11 Header: "Authorization: Bearer eyJ0eXAiO..." |
Код состояния: 200 (или 404 NOT FOUND) |
Команда | Запрос | Ответ |
---|---|---|
Получить все сообщения из выбранной комнаты | GET https://sitename/room/1/message/ Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..." |
Код состояния: 200 Header: "Content-Type: application/json" Body: [ { "id": 1, "message": "Message 1", "created": "2021-12-16T10:28:41.000+00:00", "personId": 5, "roomId": 1 }, { "id": 2, "message": "MESSAGE 2", "created": "2021-12-16T10:33:18.000+00:00", "personId": 5, "roomId": 1 }, ... ] |
Получить сообщение из выбранной комнаты по id-сообщения | GET https://sitename/room/1/message/1 Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..." |
Код состояния: 200 (или 404 NOT FOUND) Header: "Content-Type: application/json" Body: { "id": 1, "message": "Message 1", "created": "2021-12-16T10:28:41.000+00:00", "personId": 5, "roomId": 1 } |
Создать новое сообщение | POST https://sitename/room/1/message/ Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..., "Content-Type: application/json", Body: { "message": "New message", "personId": 5, "roomId": 1 } |
Код состояния: 201 Header: "Content-Type: application/json" Body: { "id": 8, "message": "New message", "created": "2021-12-20T14:37:27.293+00:00", "personId": 5, "roomId": 1 } |
Обновить сообщение (все поля) | PUT https://sitename/room/1/message/8 Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..., "Content-Type: application/json", Body: { "message": "Updated message", "personId": 5, "roomId": 1 } |
Код состояния: 200 Header: "Content-Type: application/json" Body: { "id": 8, "message": "Updated message", "created": "2021-12-20T14:37:27.293+00:00", "personId": 5, "roomId": 1 } |
Обновить сообщение (частично) | PATCH https://sitename/room/1/message/8 Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q..., "Content-Type: application/json", Body: { "message": "Patched message" } |
Код состояния: 200 Header: "Content-Type: application/json" Body: { "id": 8, "message": "Patched message", "created": "2021-12-20T14:37:27.293+00:00", "personId": 5, "roomId": 1 } |
Удалить сообщение по id | DELETE https://sitename/room/1/message/8 Header: "Authorization: Bearer eyJ0eXAiOiJKV1Q... |
Код состояния: 200 (или 404 NOT FOUND) |
Если у вас есть какие-либо вопросы, не стесняйтесь обращаться ко мне:
Евгений Зайцев