Проект в рамках тестового задания.
Доска объявлений.
Стек:
FastAPI - web framework
PostgreSQL - database
Asyncpg - async driver for Postgres db
SQLAlchemy - ORM
Alembic - migrations
Pydantic - validation
Uvicorn - ASGI web server
Клонировать репозиторий и перейти в него в командной строке:
git clone https://github.com/MikhailBogachev/fastapi_bulletin_board.git
cd fastapi_bulletin_board
Создать файл .env с переменными окружения для подключения к вашей БД (за основу можно взять файл env_example):
DB_HOST=
DB_PORT=
DB_NAME=
DB_USER=
DB_PASS=
Создать и активировать виртуальное окружение:
python -m venv venv
Windows Bash
source venv/Scripts/activate
Linux
source venv/bin/activate
Установить зависимости:
pip install -r requirements.txt
Перейти в папку app:
cd app/
Выполнить миграции:
alembic upgrade head
Запустить приложение:
python main.py
После этого приложение будет доступно по адресу: http://localhost:8000/
Дока: http://localhost:8000/docs/
Все методы требуют аутентификации, кроме:
- POST users/sign-up - регистрация
- POST users/auth - получения токена
Токен требуется передавать в загаловке к каждому запросу:
--header 'Authorization: Bearer <token>'