add_api_route() — fastapi Function Reference
Architecture documentation for the add_api_route() function in routing.py from the fastapi codebase.
Entity Profile
Dependency Diagram
graph TD 27778071_8d5b_35e0_a46c_5aa1fbf21fac["add_api_route()"] ecadd3bc_0c58_b4e5_06d8_57da79199adc["APIRouter"] 27778071_8d5b_35e0_a46c_5aa1fbf21fac -->|defined in| ecadd3bc_0c58_b4e5_06d8_57da79199adc 25327e8f_c38b_0b1b_93ba_5cf6834fddb3["add_api_route()"] 25327e8f_c38b_0b1b_93ba_5cf6834fddb3 -->|calls| 27778071_8d5b_35e0_a46c_5aa1fbf21fac 6a8dad5e_61e5_8086_e2a6_e7db4a0c2ceb["api_route()"] 6a8dad5e_61e5_8086_e2a6_e7db4a0c2ceb -->|calls| 27778071_8d5b_35e0_a46c_5aa1fbf21fac c1d02f65_9a84_123a_bdd4_304e5732f35a["include_router()"] c1d02f65_9a84_123a_bdd4_304e5732f35a -->|calls| 27778071_8d5b_35e0_a46c_5aa1fbf21fac 28261a63_2ba9_f1ff_1d1b_475348a45a65["Default()"] 27778071_8d5b_35e0_a46c_5aa1fbf21fac -->|calls| 28261a63_2ba9_f1ff_1d1b_475348a45a65 ba32f931_603d_6b3e_d601_c9cf3fce1825["get_value_or_default()"] 27778071_8d5b_35e0_a46c_5aa1fbf21fac -->|calls| ba32f931_603d_6b3e_d601_c9cf3fce1825 style 27778071_8d5b_35e0_a46c_5aa1fbf21fac fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
fastapi/routing.py lines 1020–1100
def add_api_route(
self,
path: str,
endpoint: Callable[..., Any],
*,
response_model: Any = Default(None),
status_code: Optional[int] = None,
tags: Optional[list[Union[str, Enum]]] = None,
dependencies: Optional[Sequence[params.Depends]] = None,
summary: Optional[str] = None,
description: Optional[str] = None,
response_description: str = "Successful Response",
responses: Optional[dict[Union[int, str], dict[str, Any]]] = None,
deprecated: Optional[bool] = None,
methods: Optional[Union[set[str], list[str]]] = None,
operation_id: Optional[str] = None,
response_model_include: Optional[IncEx] = None,
response_model_exclude: Optional[IncEx] = None,
response_model_by_alias: bool = True,
response_model_exclude_unset: bool = False,
response_model_exclude_defaults: bool = False,
response_model_exclude_none: bool = False,
include_in_schema: bool = True,
response_class: Union[type[Response], DefaultPlaceholder] = Default(
JSONResponse
),
name: Optional[str] = None,
route_class_override: Optional[type[APIRoute]] = None,
callbacks: Optional[list[BaseRoute]] = None,
openapi_extra: Optional[dict[str, Any]] = None,
generate_unique_id_function: Union[
Callable[[APIRoute], str], DefaultPlaceholder
] = Default(generate_unique_id),
) -> None:
route_class = route_class_override or self.route_class
responses = responses or {}
combined_responses = {**self.responses, **responses}
current_response_class = get_value_or_default(
response_class, self.default_response_class
)
current_tags = self.tags.copy()
if tags:
current_tags.extend(tags)
current_dependencies = self.dependencies.copy()
if dependencies:
current_dependencies.extend(dependencies)
current_callbacks = self.callbacks.copy()
if callbacks:
current_callbacks.extend(callbacks)
current_generate_unique_id = get_value_or_default(
generate_unique_id_function, self.generate_unique_id_function
)
route = route_class(
self.prefix + path,
endpoint=endpoint,
response_model=response_model,
status_code=status_code,
tags=current_tags,
dependencies=current_dependencies,
summary=summary,
description=description,
response_description=response_description,
responses=combined_responses,
deprecated=deprecated or self.deprecated,
methods=methods,
operation_id=operation_id,
response_model_include=response_model_include,
response_model_exclude=response_model_exclude,
response_model_by_alias=response_model_by_alias,
response_model_exclude_unset=response_model_exclude_unset,
response_model_exclude_defaults=response_model_exclude_defaults,
response_model_exclude_none=response_model_exclude_none,
include_in_schema=include_in_schema and self.include_in_schema,
response_class=current_response_class,
name=name,
dependency_overrides_provider=self.dependency_overrides_provider,
callbacks=current_callbacks,
openapi_extra=openapi_extra,
generate_unique_id_function=current_generate_unique_id,
)
self.routes.append(route)
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does add_api_route() do?
add_api_route() is a function in the fastapi codebase, defined in fastapi/routing.py.
Where is add_api_route() defined?
add_api_route() is defined in fastapi/routing.py at line 1020.
What does add_api_route() call?
add_api_route() calls 2 function(s): Default, get_value_or_default.
What calls add_api_route()?
add_api_route() is called by 3 function(s): add_api_route, api_route, include_router.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free