全书目录

第二篇:FastAPI 完全指南 —— 软件城市政务大厅宇宙

第十二章:依赖注入 —— 安检闸机、认证岗、公共流程都放这里

1 分钟 76 字 第 58 / 962 个阅读单元

FastAPI 的依赖系统是它最有辨识度的能力之一。

你可以把依赖理解成:

  • 先经过安检
  • 再验身份证
  • 再进入具体窗口
py
from typing import Annotated
from fastapi import Depends, FastAPI, Header, HTTPException

app = FastAPI()

async def verify_city_token(x_token: Annotated[str, Header()]):
    if x_token != "software-city-secret":
        raise HTTPException(status_code=401, detail="无效通行令")
    return x_token

CityToken = Annotated[str, Depends(verify_city_token)]

@app.get("/internal/stats")
async def get_stats(token: CityToken):
    return {"message": "内部统计数据", "token": token}

依赖可以依赖别的依赖,会形成一棵树。

text
请求进入
  │
  ▼
verify_token()
  │
  ▼
get_current_user()
  │
  ▼
具体业务窗口