用途:FastAPI 是用于构建 Python Web API 的现代高性能框架,基于标准 Python 类型提示,构建于 Starlette 与 Pydantic 之上,适合开发异步 API、部署 AI/机器学习模型推理端点,并自动生成 OpenAPI 与 Swagger 交互式文档。
主要能力:支持异步路由处理与 Pydantic v2 模型,对查询参数、路径、请求头与请求体进行类型安全校验和序列化;通过 Depends 实现依赖注入,复用数据库会话、认证与服务客户端;使用 lifespan 事件(@asynccontextmanager)管理数据库连接池、Redis 缓存与 ML 模型等异步资源;可用 APIRouter 组织路由。
使用方式:安装后以 from fastapi import FastAPI 创建应用,用 Pydantic BaseModel 定义请求/响应模型,以 @app.post、@app.get 等装饰器声明路由,可指定 response_model 与 status_code。依赖注入示例:async def verify_api_key(x_api_key: str = Header(...)),路由中通过 api_key: str = Depends(verify_api_key) 使用。数据库会话可用 Depends(get_db) 注入。
适用场景:高性能 Python Web API、AI 与机器学习模型服务(PyTorch、TensorFlow、Scikit-learn、Hugging Face 推理端点)、需要自动 OpenAPI 文档与类型安全负载校验的服务。
限制与注意:不要在 async def 中直接执行阻塞式 CPU 或 I/O 调用,应改用 def 让 FastAPI 在线程池执行,或使用 asyncio.to_thread;避免返回原始数据库实体,应经 Pydantic response_model 映射;允许凭证时不要将 CORS 来源硬编码为 ["*"];已弃用 @app.on_event("startup"),应迁移到 lifespan 处理器。常见问题包括 422 校验失败、异步路由中使用同步数据库驱动导致事件循环错误,以及查询返回 None 未做检查。具体安装命令与版本要求暂未提供。