Skip to content

kerniee/enrollment-project

Repository files navigation

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 --help

Разработка

Быстрые команды

  • make Отобразить список доступных команд

Как подготовить окружение для разработки?

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.0

Как запустить тесты локально?

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.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 test

Как запустить нагрузочное тестирование?

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.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

About

REST API сервис для веб-сервиса сравнения цен. Вступительное задание в Летнюю Школу Бэкенд Разработки Яндекса 2022.

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Contributors