目录
1 FastAPI 介绍及安装
1.1 介绍
FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。
源码:https://github.com/tiangolo/fastapi
📌 主要特性:
- 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic),最快的 Python web 框架之一。
- 高效编码:提高功能开发速度约 200% 至 300%。
- 更少 bug:减少约 40% 的人为(开发者)导致错误。
- 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
- 简单:设计的易于使用和学习,阅读文档的时间更短。
- 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。
- 健壮:生产可用级别的代码。还有自动生成的交互式文档。
- 标准化:基于(并完全兼容)API 的相关开放标准:OpenAPI (以前被称为 Swagger) 和 JSON Schema。
以上是 FastAPI 对自己的一顿猛夸~
1.2 FastAPI 安装
① 一步到位
pip install "fastapi[all]"
以上安装还包括了 uvicorn,可看作是 FastAPI 运行代码的服务器。
② 分步安装
如果想将应用程序部署到生产环境,可以执行以下操作:
pip install fastapi
pip install "uvicorn[standard]"
2 hello world
2.1 demo
将下面的内容丢到 main.py 的文件
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
📌 (1)终端启动
使用终端开启 uvicorn 服务
uvicorn main:app --reload
📌 (2)main 方法启动
有时我们可以直接用 main 方法启动,这样更方便些
if __name__ == '__main__':
import uvicorn
uvicorn.run(app,host="127.0.0.1",port=8080)
然后可以看到如下输出 👇
然后打开浏览器,输入127.0.0.1:8000 👇,可看到如下如下 JSON 响应,说明项目启动成功!
2.2 交互式 API 文档
FastAPI 还提供自动生成接口文档的功能,如果是 spring boot 项目的话则需要引入 swagger 依赖了,该 API 文档严格遵循 OpenAPI 标准。
书接上文,此时访问 http://127.0.0.1:8000/docs#/,你将会看到自动生成的API交互文档 👇
前后端可以根据该接口文档进行交互或是进行接口测试。
2.3 分步概括
编写一个 FastAPI 程序大致分为五步,下边是一个完整的例子:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
① 导入 FastAPI
from fastapi import FastAPI
② 创建一个 FastAPI「实例」
app = FastAPI()
③ 创建一个路径操作
这里的「路径」指的是 URL 中从第一个 / 起的后半部分,比如 https://example.com/items/foo 的路径便是 /items/foo。
@app.get("/")
④ 定义路径操作函数
「路径操作函数」可做如此区分:
- 路径:是 /。
- 操作:是 get。
- 函数:是位于「装饰器」下方的函数(位于 @app.get("/") 下方)。
def root():
⑤ 返回内容
return {"message": "Hello World"}
你可以返回一个 dict、list,像 str、int 一样的单个值,等等。
你还可以返回 Pydantic 模型,都将自动转换为 JSON 的对象和模型(包括 ORM 对象等)。