FastAPI:用 Python 类型提示写高性能 API
FastAPI:用 Python 类型提示写高性能 API
FastAPI 在 GitHub 上已经拿到近 10 万 Star。
这是一个现代 Python Web 框架,专门做一件事:用标准类型提示快速构建高性能 API。请求参数校验、自动文档生成、数据序列化,这些原本需要额外处理的环节,框架自动帮你完成。

1、 这框架定位是什么
FastAPI 的核心思路是用普通 Python 类型声明就得到一个生产可用的 API。定义路由、参数类型、请求体,框架自动完成校验、序列化和文档生成。
它底层拆成两块:Starlette 负责 HTTP 处理、路由和异步支持;Pydantic 负责数据校验、转换和序列化。你写的每一行类型提示都直接变成运行时校验规则和交互式 API 文档。

2、 为什么选它
Python 写 API 的选择不少,FastAPI 的差异化在于:你不需要为校验和文档写额外代码。
声明一个路径参数 item_id: int,框架自动校验类型,传入字符串会返回清晰的 422 错误,不用手写判断逻辑。声明一个 Pydantic 模型做请求体,Swagger UI 和 ReDoc 的交互式文档就自动生成了。
性能方面,TechEmpower 基准测试里,FastAPI 跑在 Uvicorn 上的成绩是 Python 框架中最快的梯队,和 NodeJS、Go 的差距被拉得很小。
微软用它部署 ML 服务到 Windows 和 Office 产品线;Uber 拿它做 Ludwig 的预测接口;Netflix 开源的危机管理框架 Dispatch 也基于它。这些是项目文档里列出的实际采用案例。
3、 安装和使用
安装:
pip install "fastapi[standard]"
最小示例:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
启动:
fastapi dev
默认在 8000 端口运行,访问 /docs 路径就能看到自动生成的 Swagger UI,可以直接在浏览器里调试接口。修改代码后服务自动重载。
它还内置依赖注入系统、安全认证(支持 OAuth2 和 JWT)、WebSockets、CORS 支持。这些在生产环境里常用的能力,不需要额外找第三方库拼凑。
4、 适合哪些人用
- 用 Python 写后端服务,需要自动校验和类型安全文档的开发者
- 做机器学习服务化,需要高性能异步接口的工程团队
- 构建微服务或 API 网关,看重开发效率和标准化文档的项目
浙公网安备 33010602011771号