SuperAPI AI 工具集

fastapi-advanced

编程与开发

查看项目

更新于 10-16 03:59

技能介绍

FastAPI Advanced Patterns 是一套面向现代 Python 后端的生产级 FastAPI 模式集合,来源于 yonatangross/orchestkit。其目标是为 FastAPI 应用提供可复用的高级实践,覆盖从应用启动到请求处理、配置管理与健康检查的多个环节。

用途 该技能主要用于在 FastAPI 项目中应用高级模式,包括配置 lifespan 生命周期事件、创建依赖、编写中间件以及管理 Pydantic 配置。资料将其定位为“生产级 FastAPI 模式”,适用于需要规范化后端结构的场景。

主要能力

  1. Lifespan 管理:使用 asynccontextmanager 定义应用生命周期,在启动阶段创建数据库引擎与 Redis 连接并做健康检查,在关闭阶段释放资源;也可在 lifespan 中初始化 EmbeddingsService、LLMService 等服务并预热模型。
  2. 依赖注入:提供数据库会话依赖 get_db(从 app.state 获取引擎、提交或回滚事务)、类式服务依赖 AnalysisService、使用 lru_cache 缓存 Settings、以及基于 HTTPBearer 的认证用户依赖 get_current_user 与 get_admin_user。
  3. 中间件:包含 RequestIDMiddleware(生成或透传 X-Request-ID)、TimingMiddleware(记录 X-Response-Time)、基于 structlog 的 LoggingMiddleware,以及 CORS 配置示例。
  4. Pydantic 配置:使用 BaseSettings 与 SettingsConfigDict 管理环境变量,包含字段校验(如数据库 URL 自动补全 +asyncpg)、字段约束(pool_size、api_key 长度等)与属性方法。
  5. 异常处理:为自定义 ProblemException 与 SQLAlchemy IntegrityError 注册异常处理器,返回 application/problem+json 格式。
  6. 响应优化:使用 ORJSONResponse 提升 JSON 序列化性能,使用 StreamingResponse 输出 NDJSON 流式数据。
  7. 健康检查:提供 /health 端点,检查数据库与 Redis 状态并汇总整体健康结果。

使用方式 资料以代码示例形式展示各模式的写法,例如通过 app.add_middleware 注册中间件、通过 Depends 注入依赖、通过 @app.exception_handler 注册异常处理器。此外还提供脚本:scripts/create-fastapi-app.md 是一个上下文感知的 FastAPI 应用生成器,可自动检测 Python 版本、数据库类型、Redis 使用与项目结构,用法为 /create-fastapi-app [app-name];assets/fastapi-app-template.py 是静态 FastAPI 应用模板。

适用场景 适合在配置 FastAPI lifespan 事件、创建依赖、编写中间件、管理配置、实现健康检查或优化响应时参考。资料还列出相关技能:clean-architecture(服务层模式)、database-schema-designer(SQLAlchemy 模型)、observability-monitoring(日志与指标)。

限制与反模式 资料明确列出应避免的做法:不要使用全局可变状态、不要在异步上下文中执行阻塞查询、不要在路由内直接创建会话而跳过依赖注入、不要忽略 lifespan 清理。关键决策建议包括:lifespan 使用 asynccontextmanager 而非事件、依赖采用类式服务加 DI、配置使用 Pydantic Settings 与 .env、响应使用 ORJSONResponse、中间件顺序为 CORS → RequestID → Timing → Logging、健康检查覆盖所有关键依赖。

关于收费、价格、平台支持范围等信息,资料暂未提供。