用途:为使用 FastAPI 构建 Python Web API 提供系统化指引,覆盖从入门到进阶的常见主题。
主要能力与覆盖主题:入门、路径参数、查询参数、请求体、校验、高级请求体、Cookies/Headers、Pydantic 模型、表单与文件、错误处理、路径配置、依赖注入、安全、中间件、CORS、SQL 数据库、项目结构、后台任务、元数据与文档、测试、高级响应、WebSockets、模板、设置与环境变量、生命周期事件、高级 OpenAPI。每个主题对应 references/ 目录下的参考文件。
适用场景:创建 REST API、添加自动校验的端点、实现 OAuth2/JWT 认证、使用 Pydantic 模型、依赖注入、配置 CORS 与中间件、上传文件与处理表单、测试 API 端点。
安装与运行:需要 Python 3.10+。安装 pip install "fastapi[standard]"(含 uvicorn 的完整版)或 pip install fastapi(最小版);表单/文件需额外安装 python-multipart。开发运行:fastapi dev main.py。
文档入口:Swagger UI 在 /docs,ReDoc 在 /redoc,OpenAPI 在 /openapi.json。
最佳实践:参数使用 Annotated[Type, ...];为请求/响应定义 Pydantic 模型;用 response_model 过滤输出;添加 status_code;用 tags 组织 API;在路由或应用级别加依赖做认证。
禁止事项:不要直接返回原始数据库模型;不要明文存储密码,应使用 bcrypt/passlib;不要在同一端点混用 Body 与 Form/File;不要在异步端点使用同步阻塞 I/O;错误处理不要省略 HTTPException。
版本要点:0.134.0 起支持 yield 流式 JSON Lines 与二进制数据;0.135.0 加入 SSE 支持(EventSourceResponse);0.136.1 更新 Pydantic v2 代码并将 Starlette 升至 1.0.0;0.137.0 起 include_router() 保留路由实例;0.138.0 支持 app.frontend() 托管静态前端,0.139.0 为其加入依赖支持;0.140.x 系列优化依赖注入内存、修复流式与 jsonable_encoder;0.141.0 起 app.frontend() 的 check_dir 默认 auto。
限制:资料未提供价格、收费、平台与效果等信息;具体实现细节需查阅对应参考文件。