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:
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?