在FastAPI中實(shí)現(xiàn)API的可復(fù)用性可以通過使用依賴項(xiàng)(dependencies)來實(shí)現(xiàn)。依賴項(xiàng)是在API路由處理函數(shù)執(zhí)行之前運(yùn)行的一些邏輯,可以用來驗(yàn)證、處理請(qǐng)求參數(shù)、鑒權(quán)等操作,從而實(shí)現(xiàn)代碼的復(fù)用和邏輯的分離。
例如,我們可以定義一個(gè)依賴項(xiàng)函數(shù)來驗(yàn)證用戶的身份信息:
from fastapi import Depends, FastAPI
app = FastAPI()
def get_current_user(token: str = Depends(get_token)):
user = decode_token(token)
return user
@app.get("/users/me")
async def read_users_me(current_user: User = Depends(get_current_user)):
return {"username": current_user.username}
在上面的例子中,get_current_user
函數(shù)依賴項(xiàng)函數(shù),用來驗(yàn)證用戶的身份信息。在路由處理函數(shù)read_users_me
中,我們通過Depends(get_current_user)
來注入依賴項(xiàng)函數(shù)返回的結(jié)果current_user
。
通過使用依賴項(xiàng)函數(shù),我們可以將一些通用邏輯抽離出來,在不同的API路由中進(jìn)行復(fù)用,提高代碼的可維護(hù)性和可復(fù)用性。