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

Python-Programme
Anonymous
 Wie lege ich Abhängigkeiten für den gesamten Router fest?

Post 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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post