solve_dependencies
Recursively solves dependencies for a given dependant, including sub-dependencies, path, query, header, and cookie parameters, and body fields. It manages dependency caching, handles generator dependencies, and collects any errors encountered during the process.
def solve_dependencies(
request: Request | WebSocket,
dependant: Dependant,
body: dict[str, Any] | FormData | bytes | None = None,
background_tasks: StarletteBackgroundTasks | None = None,
response: Response | None = None,
dependency_overrides_provider: Any | None = None,
dependency_cache: dict[DependencyCacheKey, Any] | None = None,
async_exit_stack: AsyncExitStack,
embed_body_fields: bool
) - > SolvedDependency
Recursively solves dependencies for a given dependant, handling path, query, header, cookie, and body parameters, and applying dependency overrides. This function is used internally by FastAPI to resolve all required arguments for a route or dependency.
Parameters
| Name | Type | Description |
|---|---|---|
| request | `Request | WebSocket` |
| dependant | Dependant | The dependant object representing the current dependency or route, including its sub-dependencies and parameter definitions. |
| body | `dict[str, Any] | FormData |
| background_tasks | `StarletteBackgroundTasks | None` = None |
| response | `Response | None` = None |
| dependency_overrides_provider | `Any | None` = None |
| dependency_cache | `dict[DependencyCacheKey, Any] | None` = None |
| async_exit_stack | AsyncExitStack | An AsyncExitStack used to manage the lifecycle of generator dependencies, ensuring they are properly closed. |
| embed_body_fields | bool | A boolean indicating whether body fields should be embedded directly or treated as a single body parameter. |
Returns
| Type | Description |
|---|---|
SolvedDependency | An object containing the solved dependency values, any errors encountered, background tasks, the response object, and the updated dependency cache. |