RavynInterceptor class¶
This is the reference for the main object RavynInterceptor that contains all the parameters,
attributes and functions.
ravyn.RavynInterceptor
¶
Bases: ABC, InterceptorProtocol
RavynInterceptor base class. The object that must be subclassed
when implementing interceptors in ravyn.
This is also an abstract class and the intercept must be implemented
when subclassing.
Example
from ravyn import Ravyn, Gateway, JSONResponse, get
from loguru import logger
from lilya.types import Receive, Scope, Send
class LoggingInterceptor(RavynInterceptor):
async def intercept(self, scope: "Scope", receive: "Receive", send: "Send") -> None:
# Log a message here
logger.info("This is my interceptor being called before reaching the handler.")
@get("/home")
async def home() -> JSONResponse:
return JSONResponse({"message": "Welcome home"})
Ravyn(routes=[Gateway(handler=home, interceptors=[LoggingInterceptor])])
intercept
async
¶
intercept(scope, receive, send)
The method that needs to be implemented for any interceptor. Containing all the logic for the inceptor itself.
Example
from loguru import logger
from lilya.types import Receive, Scope, Send
class LoggingInterceptor(RavynInterceptor):
async def intercept(self, scope: "Scope", receive: "Receive", send: "Send") -> None:
# Log a message here
logger.info("This is my interceptor being called before reaching the handler.")
Source code in ravyn/core/interceptors/interceptor.py
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | |