71 lines
3.1 KiB
Markdown
71 lines
3.1 KiB
Markdown
# 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 будет доступна по адресу <a href="http://localhost:8000/docs">http://localhost:8000</a>
|
||
|
||
По завершении работы остановите контейнеры
|
||
> `$ 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 лицензией](https://mit-license.org/).
|