💭 FastAPI - dependency inside Middleware? - Stack Overflow
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

!https://stackoverflow.com/questions/72243379/fastapi-dependency-inside-middleware#answer-72480781

Date: December 17, 2023

External Link stackoverflow.com

After struggling to get dependencies inside of middleware I learned that you can make global dependencies at the app level. I used this to set the user on every single route of the application without needing Depend on getting the user on each route.

[38;2;248;248;242m[code][0m
  from fastapi import Depends, FastAPI, Request


  def get_db_session():
      print("Calling 'get_db_session(...)'")
      return "Some Value"


  def get_current_user(session=Depends(get_db_session)):
      print("Calling 'get_current_user(...)'")
      return session


  def recalculate_resources(request: Request, current_user=Depends(get_current_user)):
      print("calling 'recalculate_resources(...)'")
      request.state.foo = current_user


  app = FastAPI(dependencies=[Depends(recalculate_resources)])


  @app.get("/")
  async def root(request: Request):
      return {"foo_from_dependency": request.state.foo}

[38;2;68;71;90mNOTE[0m
[38;2;68;71;90m│ [0mThis post is a [4m[38;2;248;248;242mthought[0m <[38;2;248;248;242m/thoughts/[0m>. It’s a short note that I make about someone else’s content online #thoughts
