Skip to content

saimon494/job4j_rest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект - Rest

Build Status codecov

О проекте

  • Данный проект - Spring boot приложение, представляет собой реализацию чата c комнатами.
  • Неавторизованные пользователи с приложением работать не могут. Чтобы послать запрос на любой из REST-сервисов сначала необходимо пройти авторизацию, в противном случае будет выдана ошибка доступа.
  • Авторизация построена на Java JWT. Все зарегистрированные пользователи хранятся в БД.
  • Приложение построено на двух слоях: слой по работе с БД и слой контроллеров.
  • В качестве БД используется PostgreSQL.
  • Работа с БД осуществляется через Spring Data JPA.
  • Слой контроллеров использует Spring MVC.
  • Все контроллеры построены по REST-архитектуре.
  • Осуществлена интеграция REST-сервисов через RestTemplate.
  • На все контроллеры написаны тесты с помощью Spring Test, Mockito и JUnit5.
  • В качестве БД для тестов используется БД в памяти HSQLDB.
  • Во всех контроллерах добавлена валидацию входных данных.
  • Исключения, выбрасываемые в ходе валидации, обрабатываются в классе, помеченным как @ControllerAdvise.
  • Для проверки приложения используется Postman.

Сборка

Для сборки проекта необходимо:

  1. Установить JDK 14.
  2. Установить Maven.
  3. Установить Postman.
  4. Установить сервер БД PostgreSQL, задать логин - postgres, пароль - password.
  5. Скачать исходный код проекта.
  6. Создать в pg_Admin БД chat.
  7. Открыть Query Tool для созданной БД и запустить SQL-скрипт update_001.sql из папки db.
  8. Перейти в корень проекта, где лежит файл pom.xml.
  9. Собрать проект командой mvn -DskipTests=true package. При успешной сборке должна появиться папка target c chat-2.jar.

Использование

Запускаем приложение:

java -jar chat-2.jar

Для проверки работы приложения будем использовать Postman, чтобы посылать соответствующие HTTP-запросы на REST-сервисы.
При попытке получить список всех пользователей получаем ответ со статусом 403, поскольку требуется токен:
Пользователи без логина
Регистрация без тела метода тоже вызовет ошибку:
Регистрация без логина
Корректный запрос на регистрацию и сохранение в БД:
Регистрация
Регистрация1
Зайдем новым пользователем. Токен располагается в заголовке Authorization:
Логин
Теперь можно получить доступ ко всем REST-сервисам приложения, указывая в заголовках отправляемых запросов полученный токен.
Получение всех пользователей:
Пользователи
Получение всех ролей:
Роли
Получение всех комнат, обновление названия:
Комнаты
Комнаты обновление
Название комнаты поменялось:
Проверка комнаты
Получение списка сообщений:
Сообщения
Получение сообщения по id:
Сообщение по id
Создание сообщения:
Новое сообщение
Запрос всех сообщений:
Все сообщения
Обновление сообщения:
Обновление сообщения
Обновление текста сообщения:
Обновление сообщения1
Удаление сообщения:
Удаление сообщения
Запрос всех сообщений:
Все сообщения

Контакты

Telegram

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages