Go to file
Сергей Ванюшкин ebe75b6dc3 upd: Добавил роут summary с выводом вмего меню со вложением 2024-02-12 23:09:01 +03:00
admin upd: Добавил роут summary с выводом вмего меню со вложением 2024-02-12 23:09:01 +03:00
fastfood upd: Добавил роут summary с выводом вмего меню со вложением 2024-02-12 23:09:01 +03:00
postman_scripts add .pre-commit-config.yaml Поправил проблемы 2024-02-03 01:08:04 +03:00
tests fix: reverse() получает урл из имени ендпоинта 2024-02-06 15:12:32 +03:00
.env Fix .env для локального запуска 2024-02-07 12:44:42 +03:00
.gitignore add .pre-commit-config.yaml Поправил проблемы 2024-02-03 01:08:04 +03:00
.pre-commit-config.yaml add .pre-commit-config.yaml Поправил проблемы 2024-02-03 01:08:04 +03:00
Dockerfile fix 2024-02-05 23:30:18 +03:00
README.md Обновить README.md 2024-02-06 23:16:18 +03:00
compose_app.yml fix 2024-02-05 23:30:18 +03:00
compose_test.yml fix 2024-02-05 23:30:18 +03:00
example.env Рефакт. Добавил слой сервис, подготовил к кэшированию 2024-02-02 23:38:12 +03:00
manage.py flow using openapi.json 2024-02-06 22:41:29 +03:00
openapi.json upd: Добавил роут summary с выводом вмего меню со вложением 2024-02-12 23:09:01 +03:00
poetry.lock add .pre-commit-config.yaml Поправил проблемы 2024-02-03 01:08:04 +03:00
pyproject.toml add .pre-commit-config.yaml Поправил проблемы 2024-02-03 01:08:04 +03:00

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

Запуск/остановка образов:

  • Запуск 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

  • Написать тесты для кривых данных
  • Много чего другого :)

Авторы

Лицензия

Распространяется под MIT лицензией.