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 | Получить список бронирований вещей пользователя |