Java-ShareIt — это платформа для совместного использования вещей, где пользователи могут делиться своими предметами и брать их в аренду. Сервис создан на Java и представляет собой пример реализации микросервисной архитектуры.
- Размещение объявлений — пользователи могут добавлять свои вещи для аренды с описанием и условиями использования
- Поиск и бронирование — возможность находить нужные предметы и бронировать их на конкретные даты
- Система запросов — пользователи могут оставлять запросы на отсутствующие предметы, которые другие участники могут добавить
- Отзывы — возможность оставлять отзывы о вещах после завершения аренды
-
Микросервисная архитектура состоит из двух основных компонентов:
-
Gateway — входной узел, отвечающий за валидацию и маршрутизацию запросов
-
Server — основной сервис обработки бизнес-логики
-
-
Масштабируемость благодаря разделению на независимые микросервисы
- Java 21
- Spring Boot 3.3.2
- Микросервисная архитектура
- REST API
- PostgreSQL
- Mockito
- MockMvc
- Клонировать репозиторий
- Убедиться, что у вас установлен Docker и Docker Compose
- Собрать проект:
mvn clean package
- Запустить все сервисы с помощью команды:
docker-compose up -d
URL | HTTP - метод | Описание |
---|---|---|
/users/{id} | GET | Получить информацию о пользователе по id |
/users | POST | Создать пользователя |
/users/{id} | PATCH | Редактировать информацию о пользователе |
/users/{id} | DELETE | Удалить пользователя |
/requests | POST | Создать запрос на нужную вещь |
/requests | GET | Получить список всех своих запрашиваемых вещей |
/requests/all | GET | Получить список всех запрашиваемых вещей других пользователей |
/requests/{id} | GET | Получить запрос на вещь по id |
/items | POST | Добавить вещь для аренды |
/items | PATCH | Редактировать информацию о вещи |
/items/{id} | GET | Просмотреть информацию о вещи по id |
/items | GET | Просмотреть список своих вещей предоставленных для аренды |
/items/search | GET | Поиск вещей по названию или описанию |
/items/{id}/comment | POST | Добавить отзыв о вещи после завершения аренды |
/bookings | POST | Отправить запрос на бронирование вещи |
/bookings/{id} | PATCH | Подтвердить или отклонить аренду |
/bookings/{id} | GET | Просмотреть информацию о бронировании |
/bookings | GET | Получить список всех бронирований пользователя |
/bookings/owner | GET | Получить список бронирований вещей пользователя |