REST API сервис для веб-сервиса сравнения цен. Вступительное задание в Летнюю Школу Бэкенд Разработки Яндекса 2022.
Приложение упаковано в Docker-контейнер и разворачивается с помощью Ansible.
Внутри Docker-контейнера доступен python модуль market.db — утилита для управления состоянием базы данных.
Как запустить REST API сервис локально на порту 80:
(миграции автоматически применяются при запуске)
docker run -it -p 80:80 --network host \
-e MARKET_PG_URL=postgresql+asyncpg://user:hackme@localhost/market \
kernie/backendschool2022Все доступные опции запуска утилиты market.db можно получить при помощи команды --help:
docker run kernie/backendschool2022 python -m market.db --helpmakeОтобразить список доступных команд
make devenv
make postgres
source env/bin/activate
python -m market.db upgrade head
uvicorn market.api.main:app --port 80 --host 0.0.0.0make devenv
make postgres
source env/bin/activate
python -m market.db upgrade head
uvicorn market.api.main:app --port 80 --host 0.0.0.0
make testлибо
make postgres
docker run -it -p 80:80 --network host \
-e MARKET_PG_URL=postgresql+asyncpg://user:hackme@localhost/market \
kernie/backendschool2022
make testmake devenv
make postgres
source env/bin/activate
python -m market.db upgrade head
uvicorn market.api.main:app --port 80 --host 0.0.0.0
locustлибо
make postgres
docker run -it -p 80:80 --network host \
-e MARKET_PG_URL=postgresql+asyncpg://user:hackme@localhost/market \
kernie/backendschool2022
make locustПосле этого станет доступен веб-интерфейс по адресу http://localhost:8089