1. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[Python] How to add a custom decorator to a FastAPI route?

Discussão em 'Python' iniciado por Stack, Setembro 28, 2024 às 15:12.

  1. Stack

    Stack Membro Participativo

    I want to add an auth_required decorator to my endpoints. (Please consider that this question is about decorators, not middleware)

    So a simple decorator looks like this:

    def auth_required(func):
    def wrapper(*args, **kwargs):
    if user_ctx.get() is None:
    raise HTTPException(...)
    return func(*args, **kwargs)
    return wrapper


    So there are 2 usages:

    @auth_required
    @router.post(...)


    or

    @router.post(...)
    @auth_required


    The first way doesn't work because router.post creates a router that saved into self.routes of APIRouter object. The second way doesn't work because it fails to verify pydantic object. For any request model, it says missing args, missing kwargs.

    So my question is - how can I add any decorators to FastAPI endpoints? Should I get into router.routes and modify the existing endpoint? Or use some functools.wraps like functions?

    Continue reading...

Compartilhe esta Página