Как указать зависимости для всего роутера?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как указать зависимости для всего роутера?

Сообщение 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}
Мне бы хотелось избежать дублирования кода. Можно ли как-то задать строку user:User = Depends(get_user_by_token) для всего роутера? При этом мне нужно, чтобы объект user был доступен в каждом методе.
Очень важно, чтобы в openapi было указано, что нужно указать заголовок с токеном для метода.

Изображение


Подробнее здесь: https://stackoverflow.com/questions/740 ... ire-router
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»