| 2920 | self._mark_routes_changed() |
| 2921 | |
| 2922 | def api_route( |
| 2923 | self, |
| 2924 | path: str, |
| 2925 | *, |
| 2926 | response_model: Any = Default(None), |
| 2927 | status_code: int | None = None, |
| 2928 | tags: list[str | Enum] | None = None, |
| 2929 | dependencies: Sequence[params.Depends] | None = None, |
| 2930 | summary: str | None = None, |
| 2931 | description: str | None = None, |
| 2932 | response_description: str = "Successful Response", |
| 2933 | responses: dict[int | str, dict[str, Any]] | None = None, |
| 2934 | deprecated: bool | None = None, |
| 2935 | methods: list[str] | None = None, |
| 2936 | operation_id: str | None = None, |
| 2937 | response_model_include: IncEx | None = None, |
| 2938 | response_model_exclude: IncEx | None = None, |
| 2939 | response_model_by_alias: bool = True, |
| 2940 | response_model_exclude_unset: bool = False, |
| 2941 | response_model_exclude_defaults: bool = False, |
| 2942 | response_model_exclude_none: bool = False, |
| 2943 | include_in_schema: bool = True, |
| 2944 | response_class: type[Response] = Default(JSONResponse), |
| 2945 | name: str | None = None, |
| 2946 | callbacks: list[BaseRoute] | None = None, |
| 2947 | openapi_extra: dict[str, Any] | None = None, |
| 2948 | generate_unique_id_function: Callable[[APIRoute], str] = Default( |
| 2949 | generate_unique_id |
| 2950 | ), |
| 2951 | ) -> Callable[[DecoratedCallable], DecoratedCallable]: |
| 2952 | def decorator(func: DecoratedCallable) -> DecoratedCallable: |
| 2953 | self.add_api_route( |
| 2954 | path, |
| 2955 | func, |
| 2956 | response_model=response_model, |
| 2957 | status_code=status_code, |
| 2958 | tags=tags, |
| 2959 | dependencies=dependencies, |
| 2960 | summary=summary, |
| 2961 | description=description, |
| 2962 | response_description=response_description, |
| 2963 | responses=responses, |
| 2964 | deprecated=deprecated, |
| 2965 | methods=methods, |
| 2966 | operation_id=operation_id, |
| 2967 | response_model_include=response_model_include, |
| 2968 | response_model_exclude=response_model_exclude, |
| 2969 | response_model_by_alias=response_model_by_alias, |
| 2970 | response_model_exclude_unset=response_model_exclude_unset, |
| 2971 | response_model_exclude_defaults=response_model_exclude_defaults, |
| 2972 | response_model_exclude_none=response_model_exclude_none, |
| 2973 | include_in_schema=include_in_schema, |
| 2974 | response_class=response_class, |
| 2975 | name=name, |
| 2976 | callbacks=callbacks, |
| 2977 | openapi_extra=openapi_extra, |
| 2978 | generate_unique_id_function=generate_unique_id_function, |
| 2979 | ) |