Проект представляет собой API магазина, реализующий CRUD функционал для товаров + получение особых данных (скидок, истории изменения). Задание выполнено полностью, реализованы базовые и дополнительные задачи.
Технологии: Python, FastApi, SQLAlchemy, PostgreSQL
По умолчанию проект запускается на 0.0.0.0:80. Доступна авто-генерируемая интерактивная документация к маршрутам, чтобы открыть, перейдите на /docs. Имеются тесты.
Главным файлом является main.py в корневой директории, он инициализирует маршруты и запускает веб-сервер. Все остальные
файлы распределены по тематическим папкам.
Сложные функции имеют комментарии, описывающие пошагово работу и краткую документацию в виде docstring
. Также
подробное описание полей имеют схемы pydantic.
- /schemas - схемы pydantic для валидации данных и удобной работы с ними
- /db - всё для базы данных: подключение к базе данных, модели таблиц, методы для работы с данными
- /routers - маршруты
- /core - вспомогательные вещи
- /tests - тесты
Клонируйте файлы проекта. Дальнейшие шаги зависят от того, будете ли вы использовать Docker для запуска или нет
- Установите зависимости
pip install -r requirements.txt
- В .env файле укажите ссылку для подключения к базе данных в параметр POSTGRES_URL_ENV. Установите PostgreSQL (https://www.postgresql.org/) и запустите его сервер, если раннее не сделали это.
- Запустите main.py
python main.py
Готово! 😎
Апи будет доступно на 0.0.0.0:80.
В репозитории уже имеются готовые файлы (Dockerile и docker-compose.yml) для запуска приложения с помощью Docker. В docker-compose.yml прописана конфигурация базы данных, при желании вы можете изменить её.
Для запуска используйте:
docker-compose up
Готово! 🤯
Апи будет доступно на 0.0.0.0:80.
В проекте имеются тесты, которые покрывают:
- валидацию данных при запросе
- работу маршрутов, логики
- особые случаи
- Установите pytest
pip install pytest
- Запустите, используя команду в корневой директории проекта
pytest
И вам отобразится результат работы тестов