Home / Function/ add_api_route() — fastapi Function Reference

add_api_route() — fastapi Function Reference

Architecture documentation for the add_api_route() function in routing.py from the fastapi codebase.

Function python FastAPI Routing calls 2 called by 3

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

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