Page 1 of 1

Wie lege ich Abhängigkeiten für den gesamten Router fest?

Posted: 23 Dec 2024, 18:40
by Anonymous
class User(BaseModel):
name: str
token: str

fake_db = [
User(name='foo', token='a1'),
User(name='bar', token='a2')
]

async def get_user_by_token(token: str = Header()):
for user in fake_db:
if user.token == token:
return user
else:
raise HTTPException(status_code=401, detail='Invalid token')

@router.get(path='/test_a', summary='Test route A')
async def test_route_a(user: User = Depends(get_user_by_token)):
return {'name': user.name}

@router.get(path='/test_b', summary='Test route B')
async def test_route_a(user: User = Depends(get_user_by_token)):
return {'name': user.name}

Ich möchte Codeduplizierung vermeiden. Ist es möglich, die Zeile user: User = Depends(get_user_by_token) irgendwie für den gesamten Router festzulegen? Gleichzeitig muss das Benutzerobjekt in jeder Methode verfügbar sein.
Es ist sehr wichtig, dass die OpenAPI sagt, dass Sie einen Header mit einem Token angeben müssen für die Methode.

Image