Skip to content

someqst/fastapi_service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание

❗ Перед запуском переименуйте .env.test в .env и внесите в него свои данные.

Описание проекта:

В директории back содержится код fastapi сервиса:

  • /data/ - содержит в себе конфигурационные файлы: config.py, loader.py. config.py отвечает за подгрузку данных из .env файла (mongo token), loader.py отвечает за инициализацию mongo и redis баз данных.
  • /database/ содержит в себе файл с прописанной базой данных. Класс MongoDB
  • /pages/ содержит в себе обработчики ендпоинтов /api/v1/message/ и /api/v1/messages.
  • Dockerfile для подгрузки fastapi сервиса в docker-compose, установка необходимых зависимостей.
  • web.py - файл, ответственный за запуск fastapi сервиса. Получает роутер из /pages/messages, добавляет CORS мидлварь.

В директории tg_bot содержится код Telegram бота:

  • bot.py - файл, ответственный за логику и запуск бота
  • config.py - файл конфигурации, нужен для подгрузки токена бота
  • loader.py - файл, ответственный за инициализацию классов Bot и Dispatcher

Директория nginx:

  • Файл app.conf отвечает за настройку nginx сервера. Сервер слушает 80 порт и перенаправляет запросы на localhost:8000, на котором запущен uvicorn.

docker-compose файл:

Инициализируем сервисы: web(fastapi service), redis, tg_bot, nginx

  1. Сначала запускается redis бд
  2. Далее пускается fastapi service
  3. После него запускаются tg_bot и nginx сервер.
  4. В nginx даем доступ серверу к "интернету", прокладывая внешний порт 8082 и внутренний 80.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published