-
Создание БД PostgreSQL
Через psql или графический интерфейс pgAdmin:CREATE DATABASE todo_db; -
Установка зависимости
pip install -r requirements.txt -
Настройка DATABASE_URL и alembic.ini
Вapp/config.pyзаменить`DATABASE_URL = "postgresql+asyncpg://postgres:myCotValerasiniy1007@localhost:5432/todo_db"`на свой пароль
`DATABASE_URL = "postgresql+asyncpg://postgres:password@localhost:5432/name_of_file"`В
alembic.iniзаменить`sqlalchemy.url = postgresql+asyncpg://postgres:myCotValerasiniy1007@localhost:5432/todo_db`на свой пароль
`sqlalchemy.url = postgresql+asyncpg://postgres:password@localhost:5432/name_of_file` -
Миграции БД
alembic upgrade head -
Запуск
uvicorn app.main:app --reload -
Swagger UI: http://localhost:8000/docs
$env:PYTHONPATH = "."; pytest -v
- Регистрация / Логин (JWT)
- CRUD для задач
- Права доступа (read/update) к задачам другим пользователям
- Только владелец может выдавать/забирать права
- POST /register — регистрация
- POST /login — логин, получение токена
- POST /todos/ — создать задачу
- GET /todos/ — посмотреть список задач
- GET /todos/{id} — посмотреть задачи по id
- PUT /todos/{id} — обновить задачу (если есть право update или задача ваша)
- DELETE /todos/{id} — удалить задачу
- POST /todos/{id}/grant — выдать права другому пользователю
- POST /todos/{id}/revoke — отозвать права