MCPcopy
hub / github.com/sanic-org/sanic / register_middleware

Method register_middleware

sanic/app.py:463–506  ·  view source on GitHub ↗

Register a middleware to be called before a request is handled. Args: middleware (Callable): A callable that takes in a request. attach_to (str): Whether to attach to request or response. Defaults to `'request'`. priority (int): The priori

(
        self,
        middleware: MiddlewareType | Middleware,
        attach_to: str = "request",
        *,
        priority: Default | int = _default,
    )

Source from the content-addressed store, hash-verified

461 return listener
462
463 def register_middleware(
464 self,
465 middleware: MiddlewareType | Middleware,
466 attach_to: str = "request",
467 *,
468 priority: Default | int = _default,
469 ) -> MiddlewareType | Middleware:
470 """Register a middleware to be called before a request is handled.
471
472 Args:
473 middleware (Callable): A callable that takes in a request.
474 attach_to (str): Whether to attach to request or response.
475 Defaults to `'request'`.
476 priority (int): The priority level of the middleware.
477 Lower numbers are executed first. Defaults to `0`.
478
479 Returns:
480 Union[Callable, Callable[[Callable], Callable]]: The decorated
481 middleware function or a partial function depending on how
482 the method was called.
483 """
484 retval = middleware
485 location = MiddlewareLocation[attach_to.upper()]
486
487 if not isinstance(middleware, Middleware):
488 middleware = Middleware(
489 middleware,
490 location=location,
491 priority=priority if isinstance(priority, int) else 0,
492 )
493 elif middleware.priority != priority and isinstance(priority, int):
494 middleware = Middleware(
495 middleware.func,
496 location=middleware.location,
497 priority=priority,
498 )
499
500 if location is MiddlewareLocation.REQUEST:
501 if middleware not in self.request_middleware:
502 self.request_middleware.append(middleware)
503 if location is MiddlewareLocation.RESPONSE:
504 if middleware not in self.response_middleware:
505 self.response_middleware.appendleft(middleware)
506 return retval
507
508 def register_named_middleware(
509 self,

Callers 3

_apply_middlewareMethod · 0.95

Calls 2

MiddlewareClass · 0.90
appendMethod · 0.45

Tested by 2