diff --git a/fastapi/applications.py b/fastapi/applications.py index 0a47699ae..5a04ea1b8 100644 --- a/fastapi/applications.py +++ b/fastapi/applications.py @@ -1147,7 +1147,7 @@ class FastAPI(Starlette): response_description: str = "Successful Response", responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None, deprecated: Optional[bool] = None, - methods: Optional[List[str]] = 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, @@ -1161,9 +1161,9 @@ class FastAPI(Starlette): ), name: Optional[str] = None, openapi_extra: Optional[Dict[str, Any]] = None, - generate_unique_id_function: Callable[[routing.APIRoute], str] = Default( - generate_unique_id - ), + generate_unique_id_function: Union[ + Callable[[routing.APIRoute], str], DefaultPlaceholder + ] = Default(generate_unique_id), ) -> None: self.router.add_api_route( path, @@ -1205,7 +1205,7 @@ class FastAPI(Starlette): response_description: str = "Successful Response", responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None, deprecated: Optional[bool] = None, - methods: Optional[List[str]] = 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, @@ -1214,12 +1214,14 @@ class FastAPI(Starlette): response_model_exclude_defaults: bool = False, response_model_exclude_none: bool = False, include_in_schema: bool = True, - response_class: Type[Response] = Default(JSONResponse), + response_class: Union[Type[Response], DefaultPlaceholder] = Default( + JSONResponse + ), name: Optional[str] = None, openapi_extra: Optional[Dict[str, Any]] = None, - generate_unique_id_function: Callable[[routing.APIRoute], str] = Default( - generate_unique_id - ), + generate_unique_id_function: Union[ + Callable[[routing.APIRoute], str], DefaultPlaceholder + ] = Default(generate_unique_id), ) -> Callable[[DecoratedCallable], DecoratedCallable]: def decorator(func: DecoratedCallable) -> DecoratedCallable: self.router.add_api_route( diff --git a/fastapi/routing.py b/fastapi/routing.py index a8e12eb60..d0d3c03e8 100644 --- a/fastapi/routing.py +++ b/fastapi/routing.py @@ -1057,7 +1057,7 @@ class APIRouter(routing.Router): response_description: str = "Successful Response", responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None, deprecated: Optional[bool] = None, - methods: Optional[List[str]] = 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, @@ -1066,13 +1066,15 @@ class APIRouter(routing.Router): response_model_exclude_defaults: bool = False, response_model_exclude_none: bool = False, include_in_schema: bool = True, - response_class: Type[Response] = Default(JSONResponse), + response_class: Union[Type[Response], DefaultPlaceholder] = Default( + JSONResponse + ), name: Optional[str] = None, callbacks: Optional[List[BaseRoute]] = None, openapi_extra: Optional[Dict[str, Any]] = None, - generate_unique_id_function: Callable[[APIRoute], str] = Default( - generate_unique_id - ), + generate_unique_id_function: Union[ + Callable[[APIRoute], str], DefaultPlaceholder + ] = Default(generate_unique_id), ) -> Callable[[DecoratedCallable], DecoratedCallable]: def decorator(func: DecoratedCallable) -> DecoratedCallable: self.add_api_route(