/java-shareit

Микросервисное приложение для аренды вещей (Java, Spring Boot, Spring JPA, PostgreSQL, REST API, Docker, Mockito, JUnit, MapStruct, Lombok)

Primary LanguageJava

ShareIt - микросервисное приложение для аренды вещей

Java, Spring Boot, Spring JPA, PostgreSQL, REST API, Docker, Mockito, JUnit, MapStruct, Lombok

О проекте

Сервис, который позволяет пользователям рассказывать, какими вещами они готовы поделиться, а также находить нужную вещь и брать её в аренду на какое-то время

Приложение содержит три микросервиса:

  • Gateway для валидации запросов,
  • Server, содержащий бизнес-логику,
  • базу данных PostgreSQL

Каждый микросервис запускается в собственном Docker контейнере.

Основная функциональность:

  • Регистрация, обновление и получение пользователей
  • Добавление, обновление, получение, а также поиск по предметам
  • Управление заявками на аренду вещей
  • Обработка запросов на аренду желаемых вещей
  • Комментирование успешно завершённой аренды

Эндпоинты

  • POST /users - добавление пользователя
  • PATCH /users/{userId} - обновление данных пользователя
  • GET /users/{userId} - получение данных пользователя
  • GET /users/ - получение списка пользователей

  • POST /items - добавление вещи
  • PATCH /items/{itemId} - обновление данных вещи
  • GET /items/{itemId} - получение данных вещи
  • GET /items/ - получение списка вещей
  • GET /items/search - поиск вещей по тексту в параметре text
  • POST /items/{itemId}/comment - добавление отзыва к вещи после завершенного бронирования

  • POST /requests - добавление запроса на бронирование
  • GET /requests/{requestId} - получение бронирования
  • GET /items/all - получение списка бронирований
  • GET /items - получение списка бронирований по id пользователя в заголовке запроса

  • PATCH /bookings/{bookingId} - обновление данных бронирования
  • PATCH /bookings/{bookingId} - одобрение или отклонение бронирования по параметру approved
  • GET /bookings/{bookingId} - получение данных о бронировании
  • GET /bookings/ - получение бронирований по фильтрам state, from, size
  • GET /bookings/owner - получение бронирований пользователя по фильтрам state, from, size

Как использовать:

Ознакомиться с примерами использования можно в этой коллекции тестов Postman