3434)
3535from grpclib import GRPCError
3636from nitric .api .exception import exception_from_grpc_error
37- from os import path
3837
3938
4039@dataclass
@@ -76,7 +75,7 @@ class ApiOptions:
7675 def __init__ (
7776 self ,
7877 path : str = "" ,
79- middleware : List [Middleware ] = None ,
78+ middleware : List [Middleware ] = [] ,
8079 security_definitions : dict [str , SecurityDefinition ] = None ,
8180 security : dict [str , List [str ]] = None ,
8281 ):
@@ -92,7 +91,7 @@ class RouteOptions:
9291
9392 middleware : Union [None , List [Middleware ]]
9493
95- def __init__ (self , middleware : List [Middleware ] = None ):
94+ def __init__ (self , middleware : List [Middleware ] = [] ):
9695 """Construct a new route options object."""
9796 self .middleware = middleware
9897
@@ -136,7 +135,7 @@ def __init__(self, name: str, opts: ApiOptions = None):
136135 opts = ApiOptions ()
137136
138137 self .name = name
139- self .middleware = opts .middleware
138+ self .middleware = opts .middleware if opts . middleware is not None else []
140139 self .path = opts .path
141140 self .routes = []
142141 self .security_definitions = opts .security_definitions
@@ -292,8 +291,8 @@ class Route:
292291 def __init__ (self , api : Api , path : str , opts : RouteOptions ):
293292 """Define a route to be handled by the provided API."""
294293 self .api = api
295- self .path = path .join (api . path , path )
296- self .middleware = opts .middleware
294+ self .path = api . path .join (path )
295+ self .middleware = opts .middleware if opts . middleware is not None else []
297296
298297 def method (self , methods : List [HttpMethod ], * middleware : HttpMiddleware , opts : MethodOptions = None ):
299298 """Register middleware for multiple HTTP Methods."""
@@ -339,7 +338,7 @@ def __init__(
339338 self .route = route
340339 self .methods = methods
341340 self .server = FunctionServer (ApiWorkerOptions (route .api .name , route .path , methods , opts ))
342- self .server .http (* middleware )
341+ self .server .http (* route . api . middleware , * route . middleware , * middleware )
343342
344343 def start (self ):
345344 """Start the server which will respond to incoming requests."""
0 commit comments