FastApi project
Проект на FastAPI с использованием PostgreSQL в качестве БД. Реализация REST API по работе с меню ресторана. Для более удобного запуска используется docker-compose. Добавлены агрегационные запросы, добавлены тесты, добавлен тестовый сценарий подсчёт количества блюд в меню и подменю. Проект переписан на асинхронное выполнение. Реализован парсинг данных из эксель таблицы и вставка его в бд. Background tasks Добавлен в функцию вызова инвалидации кэша в каждом репозитории. Postman тесты можно запускать после выполнения pytest-тестов. Каждые 15 секунд запускается Celery команда проверки изменений в таблице excel и добавление их в бд
Для добавления элемента в таблицу необходимо добавить UUID в соответствующую ячейку, чтоб оно отличалось от других введенных ранее.
В ExcelService реализовано взаимодействие с файлом Menu.xlsx. Доступны операции изменения, добавления элементов.
В файле MenuRepository представлена функция get_all_menus(), которая с помощью подзапросов выводит список меню, подменю, блюд.
В файле app/task/task.py находится celery задача и ее настройка
Фоновые задачи background_tasks находятся в файлах сервисов.
Следуйте инструкциям ниже, чтобы установить и запустить проект на своем компьютере или сервере.
Наличие:
- Docker
- Docker Compose
git clone https://github.com/Ilya2520/MyFastAPIproject2.git
cd MyFastAPIproject2- В Pycharm открыть File -> settings -> python interpreter, добавить New enviroment
- Перейти в коммандной строке Windows в директорию проекта и запустить команду:
venv\Scripts\activate - Далее выполнить следующую команду(docker должен быть установлен и запущен с правами администратора)
docker-compose -f docker-compose-celery.yml up --build
Для запуска тестов запустите следующую команду
- В Pycharm открыть File -> settings -> python interpreter, добавить New enviroment
- Перейти в коммандной строке Windows в директорию проекта и запустить команду:
docker-compose -f docker-compose-test.yml up
-После выполнения тестирования pytest будут доступны Postman тесты
- app/ - директория с файлами приложения
- docker/ - директория с Docker-контейнерами и Docker-файлами
- requirements.txt - файл зависимостей для установки необходимых пакетов