FastAPI 學習之路(二十五)路徑操作裝飾器依賴項
阿新 • • 發佈:2021-10-18
有時,我們並不需要在路徑操作函式中使用依賴項的返回值。
或者說,有些依賴項不返回值。
但仍要執行或解析該依賴項。
對於這種情況,不必在宣告路徑操作函式的引數時使用Depends,而是可以在路徑操作裝飾器中新增一個由dependencies組成的list。
我們看下,如何去實現。我們去校驗下請求頭中的token,請求的key。
from fastapi import FastAPI,Header, HTTPException,Depends app = FastAPI() fake_items_db = [{"city": "beijing"}, {"city": "shanghai"}, {"city": "heze"}] def verify_token(token: str = Header(...)): if token!="leizishuoceshikaifa": raise HTTPException(status_code=400, detail="Token header invalid") def verify_key(key: str = Header(...)): if key != "key": raise HTTPException(status_code=400, detail="Key header invalid") return key @app.get("/items/",dependencies=[Depends(verify_token),Depends(verify_key)]) def read_items(): return fake_items_db
我們看下結果如何。
用例1:不傳入請求頭
我們去看下帶上請求頭中的token
我們去帶下key,這樣介面返回就是正確的。
我們可以看到無論路徑裝飾器依賴項是否返回值,路徑操作都不會使用這些值。但是這些值都必須攜帶。
文章首發在公眾號,歡迎關注。