Skip to content

Handler Hooks deprecated ​

DANGER

nexios.hooks is not available in the current codebase. Use middleware instead.

Before and After Request (Middleware) ​

You can perform work before and after the handler by using middleware:

python
from nexios import NexiosApp
from nexios.http import Request, Response

app = NexiosApp()

async def logging_middleware(request: Request, response: Response, next_call):
    print(f"Before request: {request.method} {request.url}")
    result = await next_call()
    print(f"After request: {response.status_code}")
    return result

app.add_middleware(logging_middleware)

@app.get("/")
async def index(request, response):
    return response.json({"message": "Hello, world!"})

Custom Decorators ​

You can still use Python decorators to wrap handlers:

python
from functools import wraps

def custom_hook_decorator(hook_func):
    def decorator(handler_func):
        @wraps(handler_func)
        async def wrapper(request, response, *args, **kwargs):
            await hook_func(request, response)
            return await handler_func(request, response, *args, **kwargs)
        return wrapper
    return decorator

# Example usage
async def custom_hook(request, response):
    print("Custom hook executed")

@app.get("/example")
@custom_hook_decorator(custom_hook)
async def example_handler(request, response):
    return response.json({"message": "Custom hook in action"})