Skip to content

Foxelyss/SimpleToBuy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SimpleToBuy

Простое API сделанное по техническому заданию от кафедры

Использует FastAPI, SQLAlchemy и PostgreSQL.

Запуск и сборка используя Docker-compose

Зайдите в папку deploy и выполните команды:

docker-compose build;
docker-compose up

После чего вы можете работать с сервером при помощи Postman или Bruno, вставив в качестве {{host}} значение http://localhost:8080, либо перейти по адресу http://localhost:8080/docs для просмотра документации API, логина в систему и вызовов endpoint'ов от туда.

Note

Стандартный вход OAuth2 работает по другому пути /login_oauth2 чтобы не пересекаться с ручкой логина /login, предусмотренной ТЗ, и также для того, чтобы в swagger работал логин, потому что по ТЗ отправляется email вместо username и отправка происходит в json вместо формы

Установка и запуск напрямую

Для запуска приложения без докера, необходимо иметь установленный Python 3.10+ и PostgreSQL.

Important

PostgreSQL должен иметь БД с именем simple_to_buy и пользователем postgres с паролем postgres, либо вы должны установить переменную окружения DATABASE_URL с DSN адресом вашей базы данных, с использованием асинхронного движка(asyncpg).

Как пример: DATABASE_URL='postgresql+asyncpg://user:password@simple-to-buy-db:5432/simple_to_buy'

Первым делом зайдите в папку project, далее:

  1. Если вы на Unix системе, либо не хотите системную установку библиотек, сначала сделайте виртуальное окружение и активируйте его:

    python3 -m venv venv
    source venv/bin/activate
  2. Установите зависимости:

    pip install -r requirements.txt;
  3. Запустите приложение:

    cd app;
    
    python app.py

Работа с приложением

После запуска приложения вы можете работать с сервером при помощи Postman или Bruno, как уже было сказано ранее.

Файлы коллекции Postman и Bruno находятся в директории collection. Для удобства есть два разных запроса для логина, в качестве админа и обычного пользователя.

Все запросы, описанные в ТЗ, разкиданы по модулям, для удобства ознакомления.

Note

При разработке я использовал Bruno, так что в Postman коллекции могут быть ошибки, которые я просто не заметил при переносе. Но основной в основной массе запросы должны работать одинаково.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors