1. 程式人生 > 其它 >FastAPI 學習之路(二十五)路徑操作裝飾器依賴項

FastAPI 學習之路(二十五)路徑操作裝飾器依賴項

有時,我們並不需要在路徑操作函式中使用依賴項的返回值。

或者說,有些依賴項不返回值。

但仍要執行或解析該依賴項。

對於這種情況,不必在宣告路徑操作函式的引數時使用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,這樣介面返回就是正確的。

我們可以看到無論路徑裝飾器依賴項是否返回值,路徑操作都不會使用這些值。但是這些值都必須攜帶。

文章首發在公眾號,歡迎關注。