Logo
Section 1 / 5

FastAPI 概述

探索 FastAPI 的核心概念。

导入

FastAPI 概述

探索 FastAPI 的核心概念。

FastAPI 是一个用于构建 RESTful API 的 Python Web 框架,严格遵循 OpenAPI 规范进行 API 开发。

其核心功能包括:

  • 基于 JSON Schema 的自动生成文档。
  • 使用 Python 风格的类型注解实现数据验证。
  • 进程内后台任务支持。
  • 支持应用启动和关闭事件,用于初始化和终止相关操作。
  • 支持 WebSocket。
  • 支持依赖注入。
  • 支持 HTTP Basic、OAuth2、JSON Web Token(JWT)等多种认证方式。

自动化文档

FastAPI 提供两种类型的文档:

  1. SwaggerUI:单页交互式文档界面,可直接在浏览器中测试 API。
...
SwaggerUI 用户界面
  1. 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 进程。

基本概念

HTTP 方法