一个简单的例子
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
启动 uvicorn 命令
uvicorn main:app --reload
- main:python 的模块,即文件 main.py
- app:指
python app=FastAPI()
中的app - –reload:代码改变时重启服务器,只用于开发
API 文档
- 交互式:位于 http://127.0.0.1:8000/docs
- 参考文档:位于 http://127.0.0.1:8000/redoc
OpenAPI
- FastAPI 使用 OpenAPI 标准 (定义API协议的规范) 来生成定义API的 协议 (对某些东西的抽象描述,而不是具体的实现)
- 可以在 http://127.0.0.1:8000/openapi.json 查看自动生成的 OpenAPI 协议,该协议可以用来生成API文档和与前端、移动设备和物联网应用的代码(例如mock server?)
Recap
- FastAPI 直接继承于 Starlette
- path:也称为 endpoint 或者 route ,指 URL 中从第一个
/
开始的部分 - Operation:指 HTTP 的方法,如
POST
、GET
、PUT
等 - FastAPI 可以将大多数的对象和模型自动转化为 JSON ,包括 ORMs