Skip to content

REST API courier service for online store. Started Yandex Backend School test project.

License

Notifications You must be signed in to change notification settings

alexadastra/kurer

Repository files navigation

Приложение упаковано в Docker-контейнер и разворачивается с помощью Ansible.

Внутри Docker-контейнера доступны две команды: store-db — утилита для управления состоянием базы данных и store-api — утилита для запуска REST API сервиса.

Как использовать?

Как применить миграции:

docker run -it \
    -e ANALYZER_PG_URL=postgresql://user:hackme@localhost/store \
    semenchenkoaleksey/backendschool2021 store-db upgrade head

Как запустить REST API сервис локально на порту 8081:

docker run -it -p 8081:8081 \
    -e ANALYZER_PG_URL=postgresql://user:hackme@localhost/store \
    semenchenkoaleksey/backendschool2021

Все доступные опции запуска любой команды можно получить с помощью аргумента --help:

docker run semenchenkoaleksey/backendschool2021 store-db --help
docker run semenchenkoaleksey/backendschool2021 store-api --help

Опции для запуска можно указывать как аргументами командной строки, так и переменными окружения с префиксом STORE (например: вместо аргумента --pg-url можно воспользоваться STORE_PG_URL).

Как развернуть?

Чтобы развернуть и запустить сервис на серверах, добавьте список серверов в файл deploy/hosts.ini (с установленной Ubuntu) и выполните команды:

cd deploy
ansible-playbook -i hosts.ini --user=root deploy.yml

Разработка

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

  • make Отобразить список доступных команд
  • make devenv Создать и настроить виртуальное окружение для разработки
  • make postgres Поднять Docker-контейнер с PostgreSQL
  • make test Запустить тесты
  • make docker Собрать Docker-образ
  • make upload Загрузить Docker-образ на hub.docker.com

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

make devenv
make postgres
source env/bin/activate
store-db upgrade head
store-api

После запуска команд приложение начнет слушать запросы на 0.0.0.0:8081. Для отладки в PyCharm необходимо запустить env/bin/store-api.

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

make devenv
make postgres
source env/bin/activate
pytest

Для отладки в PyCharm необходимо запустить env/bin/pytest.

About

REST API courier service for online store. Started Yandex Backend School test project.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published