📌 项目地址:fastapi/fastapi | ⭐ 103,588 颗星 | 🔧 Python | 📜 未标注
先说一个反常的细节
FastAPI 的 README 里没有安装命令,没有一行代码示例。这在 Web 框架里很少见,Flask 的 README 第一屏就是 @app.route 的例子。FastAPI 敢这么干,因为它的全部卖点浓缩成一句话就够了:用标准 Python 类型注解写 API,校验、序列化、交互式文档全自动生成。想看代码?去 https://fastapi.tiangolo.com,官方教程有完整中文翻译,质量在开源圈属于第一梯队。
特性清单里哪些是真话,哪些要打折
README 列了一堆特性,我挑三条值得细说的:
性能可与 NodeJS 和 Go 相当。这句话的底气来自两个底层依赖:Starlette(异步 Web 层)和 Pydantic(数据校验层)。官方自称是“可用的最快 Python 框架之一”。注意措辞是“之一”,跟 Go 比 Python 本身就吃亏,别拿这句话去做技术选型的唯一依据。
开发速度提升 200%–300%,人为错误减少约 40%。README 自己标了星号,注明这是内部团队构建生产应用时的估算,不是第三方基准。这种数字看看就好,真正能感知到的是第三点。
一次声明,多处生效。你用类型注解写一个参数,校验规则、文档、编辑器补全同时都有了。代码不重复,bug 自然少。这是 FastAPI 和老一代 Python 框架拉开差距的地方,也是那个“200% 提升”最可信的来源。
另外它基于 OpenAPI(原 Swagger)和 JSON Schema 两个开放标准,生成的文档可以直接交互测试,不锁死在任何私有方案里。
谁在用,用在哪
README 引用的四条评价都来自具体团队,场景说得比空泛背书实在:
- 微软 Kabir Khan:计划把团队所有 ML 服务迁到 FastAPI,部分要集成进 Windows 核心产品和 Office。
- Uber:给 Ludwig 搭了一个 REST 服务,用来查询模型预测结果。
- Netflix:开源的危机管理编排框架 Dispatch 用 FastAPI 建的。
- Cisco Deon Pillsbury:称它是 API-first 策略的核心组件,驱动虚拟 TAC 工程师等自动化服务。
四家里有两家是拿它包装 ML 模型服务。这类需求的共同点:要把一个模型或流程快速变成可查询的 HTTP 接口,开发速度比框架生态更重要。FastAPI 正好卡在这个位置上。
和 Django、Flask 怎么选
- Django:全家桶,自带 ORM、Admin、认证,适合完整网站。只写 API 时一堆组件用不上。
- Flask:轻量,但校验、异步、文档全靠自己拼第三方库。
- FastAPI:只做 API 这一层,异步和自动文档开箱即得。代价是不管数据库、迁移、后台,得自己配 SQLAlchemy、Alembic 这些。
我的建议很简单:做内容型网站选 Django;做微服务、ML 服务、纯 API 层,FastAPI 目前是 Python 里的默认选项。
两个附带信息
README 末尾提到 2025 年底发布了一部 FastAPI 迷你纪录片,YouTube 可看,想了解项目来龙去脉的可以翻翻。
如果你要做的是终端命令行工具而不是 Web API,同一作者写了 Typer(https://typer.tiangolo.com),README 直接称它“CLI 界的 FastAPI”,类型注解驱动的思路完全一致。
最后
103,588 颗星不是白来的。FastAPI 赶上了两件事:Python 类型注解生态成熟,以及 AI/ML 服务对 HTTP 接口的海量需求。它的 README 不放示例代码,是因为类型注解写出来的代码本身就已经在“讲”它怎么用了。