用途:该技能面向 FastAPI 框架机制与高级模式,适用于配置中间件(CORS、日志、计时、错误处理)、创建复杂依赖注入链、实现带连接管理的 WebSocket 端点、自定义 OpenAPI 文档(标签、示例、弃用)、设置 JWT 认证与基于角色的访问依赖、实现后台任务(轻量或分布式)、管理应用生命周期(lifespan 启动/关闭)、设置限流或请求节流。不适用于基础端点 CRUD、仓储或服务模式、FastAPI 端点测试、API 契约设计或架构决策。
主要能力:中间件按 LIFO 顺序执行,最后添加的最先运行;推荐性能关键路径使用纯 ASGI 中间件,需要读写请求/响应体时用 BaseHTTPMiddleware。认证依赖支持 OAuth2PasswordBearer 提取令牌、jwt.decode 校验、从数据库加载用户,并用工厂函数 require_role(*roles) 实现角色校验。依赖注入在单次请求内缓存结果,可用 use_cache=False 禁用;yield 依赖用于资源清理;测试中通过 app.dependency_overrides 覆盖依赖。后台任务用 BackgroundTasks.add_task,规则是不得复用请求会话、需新建会话,且同进程运行、无重试与持久化,可靠任务应改用 Celery 等。WebSocket 用 ConnectionManager 管理连接,认证方式包括查询参数、首条消息、Cookie。生命周期用 lifespan 上下文管理器,负责数据库连接池、Redis、HTTP 客户端池、调度器与缓存预热。异常处理可注册全局处理器统一错误响应,OpenAPI 可配置标题、版本、标签、docs_url 等。
限制:资料未提供安装命令、版本要求、收费与平台信息。WebSocket 单实例持有全部连接,多实例部署需 Redis pub/sub 广播;BaseHTTPMiddleware 会将整个响应体读入内存,影响流式与大响应;@app.on_event 在 FastAPI 0.109+ 已弃用,应使用 lifespan;依赖缓存在 app.mount() 子应用中各自独立。