Skip to content

Repository files navigation

FastAPIproject

FastApi project

Итоговоя версия проекта для интенсива Ylab.

Проект на 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 - файл зависимостей для установки необходимых пакетов

About

fastApiProject v3.0

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages