已发布·持续改进
Framework · 2018 年发布
FastAPI 是一个高性能的 Python Web API 框架,基于类型提示自动完成请求校验、序列化和 API 文档生成。
FastAPI 是用 Python 构建 Web API 的现代框架,由 Sebastián Ramírez 于 2018 年首次发布,目前以开源方式由庞大的社区共同开发。它的 Web 层基于 Starlette,数据校验基于 Pydantic,只需在函数参数上写好类型提示,就能自动完成请求数据的转换与校验、响应的序列化,并生成 API 的 OpenAPI 描述。
FastAPI 特别适合重视输入校验和文档的场景,例如 REST 后端、微服务、机器学习模型服务和内部工具。由于运行在 ASGI 之上,async 端点可以高效地处理大量并发连接,普通的 def 函数也照样可用。依赖注入系统让你可以把数据库会话、身份认证和配置等公共逻辑清晰地拆分出来,并在测试中轻松替换。
入门时,建议先创建虚拟环境,用 pip install "fastapi[standard]" 安装,运行 fastapi dev main.py,然后打开 /docs,在交互式文档中直接调用接口。官方的「Tutorial - User Guide」从路径参数一路讲到安全、数据库和测试,按顺序阅读即可循序渐进。熟悉 Python 类型提示和 Pydantic 模型之后,FastAPI 的大部分内容都会变得很自然。
只需声明参数类型和 Pydantic 模型,即可转换并校验请求数据,遇到无效输入时自动返回详细的错误信息。
根据代码生成 OpenAPI 模式,并在 /docs(Swagger UI)和 /redoc 提供交互式文档。
用 Depends 声明数据库会话、身份认证或公共参数,FastAPI 会在每次请求时自动解析,测试时也能轻松替换。
基于 Starlette 和 ASGI 构建,async def 端点可以高效处理大量并发连接,也能与普通 def 函数混合使用。
在项目文件夹中创建并激活 Python 虚拟环境。下面的命令适用于 macOS 和 Linux;在 Windows 上请用 .venv\Scripts\activate 激活。
python -m venv .venv && source .venv/bin/activate安装带 standard 扩展的 FastAPI,会一并安装开发服务器 Uvicorn 和 fastapi 命令行工具等常用依赖。
pip install "fastapi[standard]"创建 main.py 后启动开发服务器。修改代码时会自动重新加载,在浏览器中打开 http://127.0.0.1:8000/docs 即可查看交互式 API 文档。
fastapi dev main.pyFastAPI() 创建应用对象,@app.get 装饰器把路径和 HTTP 方法绑定到函数上,函数返回的字典会变成 JSON 响应。在第二个端点中,item_id: int 会把路径中的值转换并校验为整数,而带默认值的 q 则成为可选的查询参数。运行 fastapi dev main.py 后,可以在 /docs 中直接调用这两个端点。
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, world!"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
return {"item_id": item_id, "q": q}
pip install "fastapi[standard]"
fastapi dev main.py共六章,带你从安装一步步了解 FastAPI 的核心概念。
在这里提问、分享经验,交流关于 FastAPI 的看法。
还没有讨论。来发起第一个吧。
0 条评论
登录 · 登录后即可发表评论。
来发表第一条评论吧。