Skip to main content

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

NameTypeDescription
request`RequestWebSocket`
dependantDependantThe dependant object representing the current dependency or route, including its sub-dependencies and parameter definitions.
body`dict[str, Any]FormData
background_tasks`StarletteBackgroundTasksNone` = None
response`ResponseNone` = None
dependency_overrides_provider`AnyNone` = None
dependency_cache`dict[DependencyCacheKey, Any]None` = None
async_exit_stackAsyncExitStackAn AsyncExitStack used to manage the lifecycle of generator dependencies, ensuring they are properly closed.
embed_body_fieldsboolA boolean indicating whether body fields should be embedded directly or treated as a single body parameter.

Returns

TypeDescription
SolvedDependencyAn object containing the solved dependency values, any errors encountered, background tasks, the response object, and the updated dependency cache.