Dependencies¶
dependencies
¶
FastAPI dependency injection functions.
Provides dependencies for authentication, authorization, and database access. These dependencies are used across all API endpoints.
Classes¶
Functions¶
get_adapters
¶
get_adapters(session: Session = Depends(get_session)) -> AdapterFactory
Get adapter factory for the current request.
This dependency provides access to all database adapters through a single AdapterFactory instance, reducing boilerplate across endpoints.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
session |
Session
|
Database session from get_session dependency |
Depends(get_session)
|
Returns:
| Type | Description |
|---|---|
AdapterFactory
|
AdapterFactory instance for database operations |
Example
@app.post("/auth/register") def register(adapters: AdapterFactory = Depends(get_adapters)): user = create_user(users=adapters.users, ...)
Source code in fastauth/api/dependencies.py
require_role
¶
Create a dependency that requires a user to have a specific role.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
role_name |
str
|
Name of the required role |
required |
Returns:
| Type | Description |
|---|---|
Callable
|
Dependency function that can be used with FastAPI Depends |
Example
@app.get("/admin", dependencies=[Depends(require_role("admin"))]) def admin_endpoint(): return {"message": "Admin access granted"}
Source code in fastauth/api/dependencies.py
require_permission
¶
Create a dependency that requires a user to have a specific permission.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
permission_name |
str
|
Name of the required permission |
required |
Returns:
| Type | Description |
|---|---|
Callable
|
Dependency function that can be used with FastAPI Depends |
Example
@app.delete( "/users/{id}", dependencies=[Depends(require_permission("delete:users"))] ) def delete_user(id: str): return {"message": "User deleted"}