Skip to content

SergeevViktor/java-shareit

Repository files navigation

Приложение ShareIt для аренды вещей.

Многомодульный проект состоящий из 2 микросервисов:

  • Модуль gateway - часть приложения, с которой непосредственно работают пользователи, он отвечает за валидацию запросов
  • Модуль server - в него передается запрос после валидации из gateway, он реализует бизнес-логику, отвечает за запросы к БД.

Добавленные контроллеры:

API для работы с вещами

POST /items - добавление новой вещи

PATCH /items/{itemId} - редактирование вещи

GET /items/{itemId} - просмотр инфо о конкретной вещи по id

GET /items - получение списка всех вещей владельцем

GET /items/search?text={text} - поиск вещи потенциальным арендатором

POST /items/{itemId}/comment - добавление комментария к вещи

API для работы с бронированием вещей

POST /bookings - добавление нового запроса на бронирование

PATCH /bookings/{bookingId}?approved={approved} - подтверждение или отклонение запроса на бронирование

GET /bookings/{bookingId} - получение данных о конкретном бронировании

GET /bookings?state={state} - получение списка всех бронирований текущего пользователя

GET /bookings/owner?state={state} - получение списка бронирований для всех вещей текущего пользователя

API для работы с запросами

POST /requests - добавление нового запроса на вещи

GET /requests - получение списка своих запросов вместе с данными об ответах

GET /requests/all?from={from}&size={size} - получение списка запросов, созданных другими пользователями

GET /requests/{requestId} - получение данных об одном конкретном запросе вместе с данными об ответах

API для работы с пользователями

GET /users/{id} - получение пользователя по идентификатору

GET /users/ - получение всех пользователей

POST /users/ - добавление пользователя в базу данных

PATCH /users/{id} - обновление пользователя по id

DELETE /users/{id} - удаление пользователя по id