Это - вторая часть, а именно сервис, или прослойка (движок), написанная на java, выполняет бизнес-логику и выступает связующим звеном между фронтом и бэкендом
GBP IT-factory | Документация(пока пуста) | Демо(пока пуста) | GitHub (middle)
За_что_отвечает_middle-service
@startUML
actor Клиент
participant Telegram
participant Service
participant Backend
Клиент -> Telegram: Запрос на действие со счетом:\n проверить баланс,\n пополнить,\n снять деньги,\n перевести
activate Telegram
Telegram -> Service: Валидация запроса
deactivate Telegram
activate Service
alt Вернуть клиенту запрос на доработку
Service -> Telegram: Клиентский запрос содержит ошибки
deactivate Service
activate Telegram
Telegram -> Клиент: Клиент перепроверяет запрос;\n завершает работу, либо шлет запрос заново
deactivate Telegram
else Запрос уже прошел цепочку клиент-телеграм-сервис + в сервисе успешно прошел проверку
activate Service
Service -> Service: Бизнес-логика
Service -> Backend: Обработка данных
deactivate Service
activate Backend
Backend -> Service: Возврат успешности операции и\или \n данных, если они были запрошены
deactivate Backend
activate Service
Service -> Telegram: Дополнительная обработка данных (если требуется)
deactivate Service
activate Telegram
end
Telegram -> Клиент: возврат данных
deactivate Telegram
@endUML
Как_запустить_и_начать_работу _ // здесь пока способы запуски без докер компоуза, как отдельные модули
Подготовка программ/окружения
Для локальной установки приложения вам понадобятся Git, Java 21, Gradle, IDEA
Получение токена
Вам нужен токен (действует как пароль), если его еще нет:
см. документацию
Способы запуска приложения - standAlone (1 и 2) и основной - как докер-приложение (3)
Получение проекта
- Скачать проект с репозитория выше целиком перейдя по ссылке на гитхаб
code -> download zip
Распаковать архив, добавить в среду разработки как новый проект - Либо, склонировать его
git@github.com:gpb-it-factory/khasmamedov-middle-service.git
примечание про зависимости
Запуск проекта
- Собрать проект в готовый к исполнению файл
gradle build
(если есть установленный грэдл)- ИЛИ же
.\gradlew build
(если Windows и грэдла нет) - ИЛИ же
chmod +x gradlew
./gradlew build
(если Linux и грэдла нет)
- ИЛИ же
- Запустить его:
java -jar ./build/libs/khasmamedov-middle-service-0.0.1-SNAPSHOT.jar
примечание про пути - ИЛИ же - запуск проекта "под ключ":
.\gradlew.bat bootRun
(Windows)
./gradlew.bat bootRun
(Linux)
как выйти из приложения
Запуск проекта через докер
- Если у вас еще нет докера, нужно его скачать:
ссылка на докер - Создать в докере image (посмотреть docker -> images в системе)
docker build -t middle-service .
возможная ошибка сборки - Запустить приложение:
- В фоновом режиме:
docker run --name middle-service -d middle-service
чтобы выйти в этом случае - набрать в терминале:docker stop telegram-bot
- С отображением результатов работы программы, включая логи и возможные ошибки:
docker run --name middle-service -it middle-service
выход из приложения <span title="Если вы видите ошибку типаdocker: Error response from daemon: Conflict. The container name "/имя контейнера" is already in use by container "длинное имя". You have to remove (or rename) that container to be able to reuse that name.
,
вам потребуется остановить это контейнер перед тем как запускать программу:
docker stop 23a960d080bd5798917cb70c5a33992c3ae2a715a9cd0187822cab80f632973e
docker rm 23a960d080bd5798917cb70c5a33992c3ae2a715a9cd0187822cab80f632973e
">примечание про ошибки контейнеров
- В фоновом режиме:
Мидл-сервис отвечает за бизнес-логику.
А именно - валидирует данные, приходящие из слоя работы с пользователем, разбирает
(и в будущем будет валидировать также) ответы, приходящие уже из бек-сервиса.
Плюс, занимается маршрутизацией обращений: например если пользователь хочет создать аккаунт, сперва пошлет запрос,
чтобы удостовериться что пользователь-тот (и если его нет в системе, зарегистрирует оного).