开源项目文档办公类新手
GitHub - fastapi/fastapi: FastAPI framework, high performance, easy to learn, fast to code, ready for production
FastAPI 是一个基于 Python 标准类型提示构建 API 的现代高性能 Web 框架,依托 Starlette 和 Pydantic,提供快速开发、自动交互式文档、数据校验与序列化等能力,适用于构建生产级 REST API、微服务及机器学习服务。
0 次阅读2026/08/28 发布
社区作者 · zZz
它解决什么问题
FastAPI 是一个现代、高性能的 Python Web 框架,用于构建 API,基于标准 Python 类型提示。其关键特性包括:性能极高,与 NodeJS 和 Go 相当(得益于 Starlette 和 Pydantic),是性能最快的 Python 框架之一;开发速度可提升约 200% 至 300%;可减少约 40% 的人为错误;编辑器支持良好、自动补全全面;设计易学易用;代码更简短;可生成生产级代码并提供自动交互式文档;基于 OpenAPI 和 JSON Schema 开放标准。
FastAPI 被微软、优步、Netflix、思科等公司用于关键业务。权威机构 TechEmpower 的独立基准测试显示,FastAPI 应用运行在 Uvicorn 上是性能最快的 Python 框架之一。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
- 环境准备:先安装 uv,然后使用 uv 将 FastAPI 添加到项目中。
- 安装命令:执行
$ uv add "fastapi[standard]",注意命令中的引号需要保留,以确保在各种终端中都能正常工作。如果更喜欢 pip,请在虚拟环境中安装fastapi[standard]。
- 创建代码文件:创建
main.py,写入示例代码:
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}如果你的代码使用 async / await,也可以用 async def 定义路径函数。
- 启动服务:在项目目录下运行
$ uv run fastapi dev,此时 FastAPI CLI 会自动读取main.py,检测 FastAPI 应用,并使用 Uvicorn 启动开发服务器。默认开启自动重载,服务地址为 http://127.0.0.1:8000。
- 验证接口:打开浏览器访问 http://127.0.0.1:8000/items/5?q=somequery ,会看到 JSON 响应
{"item_id": 5, "q": "somequery"}。
- 查看交互式 API 文档:访问 http://127.0.0.1:8000/docs 查看 Swagger UI 文档,访问 http://127.0.0.1:8000/redoc 查看 ReDoc 文档。
- 升级示例:修改
main.py,使用 Pydantic 的BaseModel声明请求体,例如增加class Item(BaseModel): name: str; price: float; is_offer: bool | None = None,并添加@app.put("/items/{item_id}")端点。fastapi dev会自动检测并重载,交互式文档也会同步更新。
- 部署(可选):可以运行
$ uv run fastapi deploy将应用部署到 FastAPI Cloud,部署前如果未登录,浏览器会自动打开完成认证。也可以根据自己的云服务商指南部署到其他云平台。
- 常见问题:如果安装命令没有加引号,可能在某些终端中出错,务必使用
"fastapi[standard]";如果不用 uv 而用 pip,请先创建并激活虚拟环境,再将 FastAPI 安装进虚拟环境。
适用场景
构建高性能 REST API
为机器学习模型提供在线推理服务
创建微服务架构中的 API 服务
开发异步 WebSocket 应用
快速构建带自动交互式文档(Swagger / ReDoc)的后端服务
实现需要数据校验
转换与序列化的后端接口





