java-shareit
Описание
Template repository for ShareIt project.
Языки
- Java99,9%
- Остальные0,1%
3 года назад
3 года назад
3 года назад
3 года назад
3 года назад
3 года назад
3 года назад
3 года назад
3 года назад
3 года назад
README.md
java-shareit
Двухмодульное приложение-микросервис для обмена вещами.
Состоит из трех микросервисов - gateway, server, БД. Каждый микросервис поднимается в отдельном docker-контейнере.
Данный проект даёт возможность пользователям:
- рассказывать, какими вещами они готовы поделиться;
- находить нужную вещь;
- брать её в аренду на какое-то время;
- позволять бронировать вещь на определённые даты;
- закрывать к ней доступ на время бронирования от других желающих.
Цели проекта
В этом проекте отрабатывалось практическое применение
- микросервисной архитектуры
- контейнеризации через Docker
- работы с БД через JPA Hibernate
- транзакций
- Mockito тестирования
Стек:
- Java 11 (Core, Collections, Optional, Stream)
- Spring Boot
- Hibernate
- PostgreSQL
- Maven
- Lombok, MapStruct
- Junit5, Mockito
- Postman
- Docker
Endpoints
Users
– получить список всех пользователей[GET] /users– получить пользователя[GET] /users/{id}id– создать нового пользователя[POST] /users– обновить пользователя[PATCH] /users/{id}id- удалить пользователя[DELETE] /users/{id}id
Items
Идентификатор пользователя передается в заголовке X-Sharer-User-Id
– получить постраничный список всех вещей пользователя (с комментариями)[GET] /items?from={from}&size={size}– получить вещь[GET] /items/{id}(с комментариями)id– создать вещь и привязать к текущему пользователю[POST] /items– обновить вещь[PUT] /items/{id}текущего пользователяid- удалить вещь[DELETE] /items/{id}текущего пользователяid– найти и вывести постранично все вещи, имеющие[GET] /items/search?text={text}&from={from}&size={size}в имени или описании, и доступные для запросаtext– оставить комментарий после использования вещи[POST] /items/{id}/commentid
Booking
Идентификатор пользователя передается в заголовке X-Sharer-User-Id
– получить постранично список всех бронирований пользователя со статусом[GET] /bookings?state={state}&from={from}&size={size}state– получить бронирование[GET] /bookings/{id}(доступно только владельцу вещи и автору бронирования)id– получить постранично список всех бронирований всех вещей владельца со статусом[GET] /bookings/owner?state={state}&from={from}&size={size}state– забронировать вещь[POST] /bookings– обновить статус бронирования вещи[PATCH] /bookings/{id}id
Request
Идентификатор пользователя передается в заголовке X-Sharer-User-Id
– создать новый запрос вещи[POST] /requests– получить список запросов текущего пользователя (с ответами на них)[GET] /requests– получить запрос[GET] /requests/{id}(с ответами на него)id– получить постраничный список запросов, созданных другими пользователями (с ответами на них)[GET] /requests/all?from={from}&size={size}