MCPcopy
hub / github.com/fastapi/fastapi / add_api_route

Method add_api_route

fastapi/routing.py:2838–2920  ·  view source on GitHub ↗
(
        self,
        path: str,
        endpoint: Callable[..., Any],
        *,
        response_model: Any = Default(None),
        status_code: int | None = None,
        tags: list[str | Enum] | None = None,
        dependencies: Sequence[params.Depends] | None = None,
        summary: str | None = None,
        description: str | None = None,
        response_description: str = "Successful Response",
        responses: dict[int | str, dict[str, Any]] | None = None,
        deprecated: bool | None = None,
        methods: set[str] | list[str] | None = None,
        operation_id: str | None = None,
        response_model_include: IncEx | None = None,
        response_model_exclude: IncEx | None = 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: type[Response] | DefaultPlaceholder = Default(JSONResponse),
        name: str | None = None,
        route_class_override: type[APIRoute] | None = None,
        callbacks: list[BaseRoute] | None = None,
        openapi_extra: dict[str, Any] | None = None,
        generate_unique_id_function: Callable[[APIRoute], str]
        | DefaultPlaceholder = Default(generate_unique_id),
        strict_content_type: bool | DefaultPlaceholder = Default(True),
    )

Source from the content-addressed store, hash-verified

2836 return decorator
2837
2838 def add_api_route(
2839 self,
2840 path: str,
2841 endpoint: Callable[..., Any],
2842 *,
2843 response_model: Any = Default(None),
2844 status_code: int | None = None,
2845 tags: list[str | Enum] | None = None,
2846 dependencies: Sequence[params.Depends] | None = None,
2847 summary: str | None = None,
2848 description: str | None = None,
2849 response_description: str = "Successful Response",
2850 responses: dict[int | str, dict[str, Any]] | None = None,
2851 deprecated: bool | None = None,
2852 methods: set[str] | list[str] | None = None,
2853 operation_id: str | None = None,
2854 response_model_include: IncEx | None = None,
2855 response_model_exclude: IncEx | None = None,
2856 response_model_by_alias: bool = True,
2857 response_model_exclude_unset: bool = False,
2858 response_model_exclude_defaults: bool = False,
2859 response_model_exclude_none: bool = False,
2860 include_in_schema: bool = True,
2861 response_class: type[Response] | DefaultPlaceholder = Default(JSONResponse),
2862 name: str | None = None,
2863 route_class_override: type[APIRoute] | None = None,
2864 callbacks: list[BaseRoute] | None = None,
2865 openapi_extra: dict[str, Any] | None = None,
2866 generate_unique_id_function: Callable[[APIRoute], str]
2867 | DefaultPlaceholder = Default(generate_unique_id),
2868 strict_content_type: bool | DefaultPlaceholder = Default(True),
2869 ) -> None:
2870 route_class = route_class_override or self.route_class
2871 responses = responses or {}
2872 combined_responses = {**self.responses, **responses}
2873 current_response_class = get_value_or_default(
2874 response_class, self.default_response_class
2875 )
2876 current_tags = self.tags.copy()
2877 if tags:
2878 current_tags.extend(tags)
2879 current_dependencies = self.dependencies.copy()
2880 if dependencies:
2881 current_dependencies.extend(dependencies)
2882 current_callbacks = self.callbacks.copy()
2883 if callbacks:
2884 current_callbacks.extend(callbacks)
2885 current_generate_unique_id = get_value_or_default(
2886 generate_unique_id_function, self.generate_unique_id_function
2887 )
2888 route = route_class(
2889 self.prefix + path,
2890 endpoint=endpoint,
2891 response_model=response_model,
2892 status_code=status_code,
2893 tags=current_tags,
2894 dependencies=current_dependencies,
2895 summary=summary,

Callers 3

decoratorMethod · 0.95
main.pyFile · 0.45

Calls 3

_mark_routes_changedMethod · 0.95
DefaultFunction · 0.90
get_value_or_defaultFunction · 0.90

Tested by

no test coverage detected