- учесть приход и отпуск носков;
- узнать общее количество носков определенного цвета и состава в данный момент времени.
- Java 11;
- Spring boot
- Hibernate
- PostgreSQL
- Flyway
- Docker
C помощью GitHub actions настроен автодеплой на Heroku: https://socks-applications.herokuapp.com/. Внешний интерфейс приложения представлен в виде HTTP API.
Регистрирует приход носков на склад.
Параметры запроса передаются в теле запроса в виде JSON-объекта со следующими атрибутами:
- color — цвет носков, строка (например, black, red, yellow);
- cottonPart — процентное содержание хлопка в составе носков, целое число от 0 до 100 (например, 30, 18, 42);
- quantity — количество пар носков, целое число больше 0.
Пример JSON объекта:
{
"color": "red",
"cottonPart": 86,
"quantity": 23
}
Результаты:
- HTTP 200 — удалось добавить приход;
- HTTP 400 — параметры запроса отсутствуют или имеют некорректный формат;
- HTTP 500 — произошла ошибка, не зависящая от вызывающей стороны (например, база данных недоступна).
Регистрирует отпуск носков со склада. Здесь параметры и результаты аналогичные, но общее количество носков указанного цвета и состава не увеличивается, а уменьшается.
Возвращает общее количество носков на складе, соответствующих переданным в параметрах критериям запроса.
Параметры запроса передаются в URL:
- color — цвет носков, строка;
- operation — оператор сравнения значения количества хлопка в составе носков, одно значение из: moreThan, lessThan, equal;
- cottonPart — значение процента хлопка в составе носков из сравнения.
Результаты:
- HTTP 200 — запрос выполнен, результат в теле ответа в виде строкового представления целого числа;
- HTTP 400 — параметры запроса отсутствуют или имеют некорректный формат;
- HTTP 500 — произошла ошибка, не зависящая от вызывающей стороны (например, база данных недоступна).
Примеры запросов:
- https://socks-applications.herokuapp.com/api/socks?color=red&operation=moreThan&cottonPart=90 — должен вернуть общее количество красных носков с долей хлопка более 90% или сообщение об ошибке, в том случае, если носки не найдены;
- https://socks-applications.herokuapp.com/api/socks?color=black&operation=lessThan?cottonPart=10 — должен вернуть общее количество черных носков с долей хлопка менее 10% или сообщение об ошибке, в том случае, если носки не найдены;
Запускать приложение в ручную не требуется, оно развернуто на Heroku: https://socks-applications.herokuapp.com/. Для взаимодействия с API приложения вам поднадобится Postman и подключение к интернету :)
Есть возможность запуска проекта через Docker.
- Убедиться, что Docker установлен
- Зайти в корневой каталог проекта и выполнить следующие bash-команды:
./mvnw clean package -DskipTests
cp target/socks-api.jar .
docker-compose up
- Готово! Осталось лишь зайти на localhost:8080
- В случае, если приложение больше не нужно, можно отключить командой
docker-compose down