Сергей Ванюшкин f72c6fe4d7 | ||
---|---|---|
fastfood | ||
postman_scripts | ||
tests | ||
.gitignore | ||
.pre-commit-config.yaml | ||
Dockerfile | ||
README.md | ||
compose_app.yml | ||
compose_test.yml | ||
example.env | ||
manage.py | ||
openapi.json | ||
poetry.lock | ||
pyproject.toml |
README.md
fastfood
Fastapi веб приложение реализующее api для общепита.
Описание
Данный проект, это результат выполнения практических домашних заданий интенсива от YLAB Development. Проект реализован на фреймворке fastapi, с использованием sqlalchemy. В качестве базы данных используется postgresql.
Техническое задание
Спринт 3 - Паттерны и принципы разработки
1.Вынести бизнес логику и запросы в БД в отдельные слои приложения.
2.Добавить кэширование запросов к API с использованием Redis. Не забыть про инвалидацию кэша.
3.Добавить pre-commit хуки в проект. Файл yaml будет прикреплен к ДЗ.
4.Покрыть проект type hints (тайпхинтами)
5.* Описать ручки API в соответствий c OpenAPI
6.** Реализовать в тестах аналог Django reverse() для FastAPI
Требования: ●Код должен проходить все линтеры. ●Код должен соответствовать принципам SOLID, DRY, KISS. ●Проект должен запускаться по одной команде (докер). ●Проект должен проходить все Postman тесты (коллекция с Вебинара №1). ●Тесты написанные вами после Вебинара №2, должны быть актуальны, запускать и успешно проходить
Дополнительно: Контейнеры с проектом и с тестами запускаются разными командами.
Зависимости
- docker
- docker-compose
Установка
Клонируйте репозиторий
$ git clone https://git.pi3c.ru/pi3c/fastfood.git
Перейдите в каталог
$ cd fastfood
cp example.env .env
Запуск/остановка образов:
- Запуск FAstAPI приложения
$ docker-compose -f compose_app.yml up
После успешного запуска образов документация по API будет доступна по адресу http://localhost:8000
По завершении работы остановите контейнеры
$ docker-compose -f compose_app.yml down
- Запуск тестов
$ docker-compose -f compose_test.yml up
По завершении работы остановите контейнеры
$ docker-compose -f compose_test.yml down
TODO
- Написать тесты для кривых данных
- Много чего другого :)
Авторы
- Сергей Ванюшкин pi3c@yandex.ru
Лицензия
Распространяется под MIT лицензией.