Skip to content

Repository files navigation

java-shareit (Cервис для шеринга.)

Превью

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

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


Основные сценарии, которые поддерживает приложение.

  1. Добавление новой вещи. Происходит по эндпойнту POST /items. На вход поступает объект ItemDto. userId в заголовке X-Sharer-User-Id — это идентификатор пользователя, который добавляет вещь. Именно этот пользователь — владелец вещи. Идентификатор владельца будет поступать на вход в каждом из запросов.
  2. Редактирование вещи. Эндпойнт PATCH /items/{itemId}. Изменить можно название, описание и статус доступа к аренде. Редактировать вещь может только её владелец.
  3. Просмотр информации о конкретной вещи по её идентификатору. Эндпойнт GET /items/{itemId}. Информацию о вещи может просмотреть любой пользователь.
  4. Просмотр владельцем списка всех его вещей с указанием названия и описания для каждой. Эндпойнт GET /items.
  5. Поиск вещи потенциальным арендатором. Пользователь передаёт в строке запроса текст, и система ищет вещи, содержащие этот текст в названии или описании. Происходит по эндпойнту /items/search?text={text}, в text передаётся текст для поиска. Проверьте, что поиск возвращает только доступные для аренды вещи.

Основное приложение разбито на два:

Приложение shareIt-server - содержит всю основную логику.

Приложение shareIt-gateway - содержит контроллеры, с которыми непосредственно работают пользователи, — вместе с валидацией входных данных.

Каждое из приложений запускается как самостоятельное Java-приложение, а их общение происходить через REST. Чтобы сделать запуск и взаимодействие приложений более предсказуемым и удобным, каждое из них размещено в своём Docker-контейнере. Также в Docker-контейнер вынесена база данных.


  1. REST сервисы с использованием Spring Boot, Maven, Lombok, взаимодействие с БД, микросервисная архитектура, Мок-тестирование.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages