Ветка проекта: master
─── master (REST)
│
└── SOAP
Программа по управлению кофеваркой через браузер.
В программе используется Spring Statemachine для моделирования состояний кофемашины и переходов между ними (StateMachineConfig.java). При переходах в новое состояние выполняются действия (паттерн 'Команда').
Кофемашина делает 3 вида кофе, кол-во ингредиентов и
время приготовления для каждого вида находится в consumables.yaml, эти параметры
внедряются в соответствующие классы по средствам @Value
, например в Cappuccino.java.
Для эмуляции действий кофемашины используется CoffeeMachineImpl.java. Действия кофемашины логгируются в базу данных по средствам аннотации @LogToDB, аспекта DatabaseLoggingAspect.java и DBAppender`а (logback-spring.xml).
Управление осуществляется по средствам HTTP запросов которые обрабатываются CoffeeMachineController.java.
Конфигурация:
- application.yaml
- net.coffeemachine.config
- JDK 17
- maven 3
-
Профили:
dev
По умолчанию, база данных H2 (In memory)prod
База данных PostgreSQL
-
Запуск
mvn spring-boot:run
-
Запуск с профилем
prod
mvn spring-boot:run -Dspring-boot.run.profiles=prod
-
Запустить с maven wrapper и указанным JDK: run.sh
URL: http://localhost:8080/coffeemachine/control
API | Method | Description | URL |
---|---|---|---|
CoffeeMachineController | PATCH | Включить кофеварку | {URL}/start |
PATCH | Сделать кофе | {URL}/make?coffeeType={coffeeType} | |
PATCH | Остатки ингредиентов | {URL}/remains | |
PATCH | Почистить кофеварку | {URL}/clean | |
PATCH | Выключить кофеварку | {URL}/stop |