-
-
Notifications
You must be signed in to change notification settings - Fork 462
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Maybe a feature request, not a bug.
FastAPI-Users routes look like:
@router.get(
"/{id}",
response_model=user_schema,
dependencies=[Depends(get_current_superuser)],
name="users:user",
responses={
status.HTTP_401_UNAUTHORIZED: {
"description": "Missing token or inactive user.",
},
status.HTTP_403_FORBIDDEN: {
"description": "Not a superuser.",
},
status.HTTP_404_NOT_FOUND: {
"description": "The user does not exist.",
},
},
)
async def get_user(user=Depends(get_user_or_404)):
return user_schema.from_orm(user)
Where get_user_or_404
is:
async def get_user_or_404(
id: Any,
user_manager: BaseUserManager[models.UP, models.ID] = Depends(get_user_manager),
) -> models.UP:
try:
parsed_id = user_manager.parse_id(id)
return await user_manager.get(parsed_id)
except (exceptions.UserNotExists, exceptions.InvalidID) as e:
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND) from e
I understand, of course, why id
is typed as Any
, but the inability to set a type for the id
breaks various consumers of the OpenAPI spec (for instance, fuzzers like schemathesis
).
It would be super nice to parameterize the dependency such that when the ORM is initialized the type can be passed to this dependency.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working