python.fastapi.md 2.7 KB

Python (FastAPI) 项目:高性能待办事项 API

概述

使用 Python 和 FastAPI 构建一个现代、高性能的多用户待办事项 API。利用其异步特性和自动生成的 API 文档。

功能需求

1. 用户认证

  • 注册: POST /users/ - 请求体为 Pydantic 模型 (username, email, password),密码需哈希。
  • 登录: POST /token - 请求体为 OAuth2PasswordRequestForm,返回 Access Token。
  • 获取当前用户: GET /users/me/ - 需认证,返回用户信息。

2. 任务 (Item)

  • 创建任务: POST /users/me/items/ - 需认证,任务与当前用户关联。
  • 获取当前用户任务: GET /users/me/items/ - 需认证,支持分页、按完成状态和优先级筛选。
  • 获取特定任务: GET /items/{item_id} - 需认证,仅限自己的任务。
  • 更新任务: PUT /items/{item_id} - 需认证,仅限自己的任务。
  • 删除任务: DELETE /items/{item_id} - 需认证,仅限自己的任务。

技术栈

  • 语言: Python 3.9+
  • 框架: FastAPI
  • 数据模型: Pydantic
  • 数据库: PostgreSQL (使用 asyncpg)
  • ORM: SQLAlchemy 2.0 (异步) 或 SQLModel
  • 迁移: Alembic
  • 认证: passlib, python-jose, FastAPI's OAuth2
  • 代码结构: 分层结构 (Router, Service, Repository)

项目结构

/fastapi-todo-api
├── app/
│   ├── main.py             # FastAPI 入口
│   ├── api/                # 路由 (routers) 和依赖 (deps)
│   ├── core/               # 配置 (config) 和安全 (security)
│   ├── db/                 # 数据库会话和模型
│   ├── schemas/            # Pydantic Schemas
│   └── crud/               # CRUD 操作函数
├── alembic/
└── requirements.txt

任务步骤

  1. 环境设置: 创建虚拟环境,安装依赖。
  2. 配置: 使用 Pydantic 的 BaseSettings 从环境变量加载配置。
  3. 数据库与模型: 定义 SQLAlchemy 模型,使用 Alembic 创建迁移。
  4. Schemas: 为每个模型定义 Create, Update, Read 等 Pydantic schemas。
  5. CRUD 操作: 编写与数据库直接交互的异步 CRUD 函数。
  6. 安全与认证: 实现密码哈希和 JWT 逻辑,创建获取当前用户的依赖项。
  7. API 路由: 创建 APIRouter,定义路径操作函数,调用 CRUD 函数。
  8. 主应用: 在 main.py 中创建 FastAPI 实例并包含各模块路由。
  9. 依赖注入: 使用 FastAPI 的 Depends 来提供数据库会话和用户认证。
  10. 测试: 使用 pytesthttpx 编写异步 API 测试。

先行任务: 专注于定义清晰的 Pydantic 模型和数据库结构。