Altering requests and responses with middleware
If you have been following along with the book up until now, the concept of middleware should be familiar. This is the first tool in the tool belt that you should become familiar with.
Middleware is snippets of code that can be run before and after route handlers. Middleware comes in two varieties: request and response.
Request middleware
The request middleware executes in the order in which it was declared, before the route handler, as shown here:
@app.on_request async def one(request): print("one") @app.on_request async def two(request): print("two") @app.get("/") async def handler(request): print("three") return text("done")
When we try to reach this endpoint, we should see the following in the Terminal:
one two three (sanic.access)[INFO][127.0.0.1:47194]: GET http://localhost...