导入
FastAPI 概述
探索 FastAPI 的核心概念。
FastAPI 是一个用于构建 RESTful API 的 Python Web 框架,严格遵循 OpenAPI 规范进行 API 开发。
其核心功能包括:
- 基于 JSON Schema 的自动生成文档。
- 使用 Python 风格的类型注解实现数据验证。
- 进程内后台任务支持。
- 支持应用启动和关闭事件,用于初始化和终止相关操作。
- 支持 WebSocket。
- 支持依赖注入。
- 支持 HTTP Basic、OAuth2、JSON Web Token(JWT)等多种认证方式。
自动化文档
FastAPI 提供两种类型的文档:
- SwaggerUI:单页交互式文档界面,可直接在浏览器中测试 API。
...
SwaggerUI 用户界面
- ReDoc:基于 React 的响应式文档界面,通过厂商扩展支持在文档中展示代码示例。
...
ReDoc 文档界面
数据验证
FastAPI 完全兼容 pydantic,可在运行时利用 Python 风格的类型注解进行数据验证。
注意:
pydantic是一个开源框架,用于基于 Python 类型注解实现数据验证和配置管理。
此外,pydantic 支持自定义数据类型,并允许开发者通过 validator 装饰器扩展验证逻辑。
当验证失败时,pydantic 会返回包含错误信息的 JSON 结果。
例如,以下 JSON 输出表示 API 请求中缺少 image 参数的值:
1[ 2 { 3 "loc": [ 4 "image" 5 ], 6 "msg": "field required", 7 "type": "value_error.missing" 8 } 9]
部署方式
部署 FastAPI 应用有多种方法,常见的包括:
- 使用一个 Uvicorn 进程管理器管理多个 Uvicorn 工作进程。
- 使用一个 Gunicorn 进程管理器管理多个 Uvicorn 工作进程。
- 使用多个容器,每个容器运行一个独立的 Uvicorn 进程。