Skip to content

Job4j_chat - REST API для приложения "чат с комнатами". Стек: Java 11, Spring Boot 2(Web MVC, Data JPA, Security/JWT, Validator), PostgreSQL, Maven, Tomcat.

Notifications You must be signed in to change notification settings

CyberfuzZ-Apps/job4j_chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Job4j_chat

Java CI with Maven

О проекте:

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

Подробнее:

REST API

для всех пользователей:

Команда Запрос Ответ
Регистрация 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..."

для авторизованного пользователя

rooms

Команда Запрос Ответ
Получить список всех комнат 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)

messages

Команда Запрос Ответ
Получить все сообщения из выбранной комнаты 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)

Контакты:

Если у вас есть какие-либо вопросы, не стесняйтесь обращаться ко мне:

Евгений Зайцев

cyberfuzzapps@gmail.com

About

Job4j_chat - REST API для приложения "чат с комнатами". Стек: Java 11, Spring Boot 2(Web MVC, Data JPA, Security/JWT, Validator), PostgreSQL, Maven, Tomcat.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages