diff --git a/fastapi/applications.py b/fastapi/applications.py index 2befee740..1e0959b3a 100644 --- a/fastapi/applications.py +++ b/fastapi/applications.py @@ -1084,7 +1084,7 @@ class FastAPI(Starlette): generate_unique_id_function: Callable[[routing.APIRoute], str] = Default( generate_unique_id ), - middleware: Optional[List[Middleware]] = None, + middleware: Optional[Sequence[Middleware]] = None, ) -> None: self.router.add_api_route( path, @@ -1142,7 +1142,7 @@ class FastAPI(Starlette): generate_unique_id_function: Callable[[routing.APIRoute], str] = Default( generate_unique_id ), - middleware: Optional[List[Middleware]] = None, + middleware: Optional[Sequence[Middleware]] = None, ) -> Callable[[DecoratedCallable], DecoratedCallable]: def decorator(func: DecoratedCallable) -> DecoratedCallable: self.router.add_api_route( diff --git a/fastapi/routing.py b/fastapi/routing.py index 1bb7dc39d..65d0d99df 100644 --- a/fastapi/routing.py +++ b/fastapi/routing.py @@ -935,7 +935,7 @@ class APIRouter(routing.Router): generate_unique_id_function: Union[ Callable[[APIRoute], str], DefaultPlaceholder ] = Default(generate_unique_id), - middleware: Optional[List[Middleware]] = None, + middleware: Optional[Sequence[Middleware]] = None, ) -> None: route_class = route_class_override or self.route_class responses = responses or {} @@ -956,7 +956,7 @@ class APIRouter(routing.Router): generate_unique_id_function, self.generate_unique_id_function ) if middleware and self.middleware: - middleware = self.middleware + middleware + middleware = list(self.middleware) + list(middleware) route = route_class( self.prefix + path, @@ -1018,7 +1018,7 @@ class APIRouter(routing.Router): generate_unique_id_function: Callable[[APIRoute], str] = Default( generate_unique_id ), - middleware: Optional[List[Middleware]] = None, + middleware: Optional[Sequence[Middleware]] = None, ) -> Callable[[DecoratedCallable], DecoratedCallable]: def decorator(func: DecoratedCallable) -> DecoratedCallable: self.add_api_route(