用途:在实现阶段编写或修改 FastAPI 后端代码时启用,包括路由处理器、Pydantic v2 请求/响应模式、SQLAlchemy 2.0 异步模型与查询、仓储模式、服务层业务逻辑、Alembic 迁移、Depends() 依赖注入链以及跨层错误处理。不适用于后端测试(用 pytest-patterns)、FastAPI 框架机制如中间件/WebSocket/OpenAPI/CORS/lifespan(用 fastapi-patterns)、部署与 CI/CD(用 deployment-pipeline)、API 契约设计(用 api-design-patterns)和架构决策(用 system-architecture)。
主要能力与约定:项目按 app/ 下 core、models、schemas、repositories、services、routes、dependencies 分层。路由只处理 HTTP 关注点,使用 response_model 与 status.HTTP_* 常量,只调用服务不直接调用仓储。仓储封装数据库访问,返回模型实例或 None,不写业务逻辑,不抛 HTTPException,add() 后 flush() 并 refresh() 获取生成字段,异步下用 selectinload() 预加载关系。服务层承载业务逻辑,抛领域异常(NotFoundError、ConflictError 等)而非 HTTPException,通过构造函数接收 AsyncSession 并自建仓储。领域异常在 FastAPI 应用注册全局异常处理器映射为对应状态码。Pydantic v2 使用 ConfigDict(from_attributes=True)、model_validate()、model_dump(exclude_unset=True) 处理 PATCH。异步会话用 async_sessionmaker 且 expire_on_commit=False,每请求一个会话,后台任务新建会话。模型用 Mapped/mapped_column,关系设 lazy="selectin"。Alembic 用 revision --autogenerate、upgrade head、downgrade -1 等命令,迁移需可回滚并逐一审查。
限制:资料未提供安装命令、版本要求、收费或平台信息;具体实现细节以项目实际配置为准。