Skip to content

29. Global Dependencies


1. Global Dependencies

  • 일부 유형의 애플리케이션의 경우, 전체 애플리케이션에 dependencies를 추가할 수 있다.
  • path operation 데코레이터에 dependencies를 추가하는 방식과 유사하게 FastAPI 애플리케이션에 추가할 수 있다.


  • 다음의 예제는 애플리케이션의 모든 path operation에 dependencies를 추가하는 예제이다.


from fastapi import Depends, FastAPI, Header, HTTPException

async def verify_token(x_token: str = Header(...)):
    if x_token != "fake-super-secret-token":
        raise HTTPException(status_code=400, detail="X-Token header invalid")

async def verify_key(x_key: str = Header(...)):
    if x_key != "fake-super-secret-key":
        raise HTTPException(status_code=400, detail="X-Key header invalid")

    return x_key

app = FastAPI(dependencies=[Depends(verify_token), Depends(verify_key)])

@app.get("/items/")
async def read_items():
    return [{"item": "Portal Gun"}, {"item": "Plumbus"}]

@app.get("/users/")
async def read_users():
    return [{"username": "Rick"}, {"username": "Morty"}]

References