Skip to content

konianzero/CoffeeMachine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Управление кофеваркой через браузер

Ветка проекта: 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

H2 console


Документация API

Swagger Api Documentation

API Method Description URL
CoffeeMachineController PATCH Включить кофеварку {URL}/start
PATCH Сделать кофе {URL}/make?coffeeType={coffeeType}
PATCH Остатки ингредиентов {URL}/remains
PATCH Почистить кофеварку {URL}/clean
PATCH Выключить кофеварку {URL}/stop

About

Программа по управлению кофеваркой через браузер (Spring Boot / Spring AOP / REST | SOAP)

Topics

Resources

License

Stars

Watchers

Forks