В данном репозитории представлен исходный код разрабатываемого проекта "Телеграмм-банк".
Представленный проект состоит из 3 ключевых компонентов, подробнее рассмотренных ниже.
В качестве пользовательского интерфейса для взаимодействия с приложением используется телеграмм-бот.
Расширяемый механизм команд основан на интерфейсе Command. Каждый класс, реализующий интерфейс - отдельный бин, занимающийся логикой обработки команды.
Описание главных классов:
1. Bot - главный класс с ботом;
2. BotInitializer - класс-инициализатор для бота;
3. Command - интерфейс команды, которую обслуживает бот;
4. PingCommand - класс, который обслуживает ответы на "/ping";
5. StartCommand - класс, который обслуживает ответы на "/start";
6. RegisterCommand - класс, который обслуживает ответы на "/register";
7. CommandHandler - класс, который занимается логикой определения команды и передачей управления обслуживающему команду классу.
8. MiddleServiceApi - feign-клиент, для взаимодействия с middle-service.
To be continued...
Данный компонент занимается обработкой пользовательских запросов, валидацией, выполняет бизнес-логику, а также направляет запросы в BACKEND-компонент.
Данный компонент занимается основными операциями, такими как: обработка транзакций, хранение данных пользователя и т.п.
Передача сообщений между клиентом и сервисом происходит с помощью используемого в Telegram протокола передачи сообщений MTProto. Внутри сервиса взаимодействие между компонентами осуществляется по протоколу HTTP.
На данной диаграмме изображен абстрактный сценарий работы клиента с сервисом. Клиент отправляет команду, сервис занимается ее обработкой и возвращает ответ.
Данный файл будет расширяться в процессе разработки проекта. 🐸