sanic/docs/middleware.md

30 lines
929 B
Markdown
Raw Permalink Normal View History

2016-10-14 12:51:08 +01:00
# Middleware
Middleware can be executed before or after requests. It is executed in the order it was registered. If middleware returns a response object, the request will stop processing and a response will be returned.
2016-10-14 12:51:08 +01:00
Middleware is registered via the middleware decorator, and can either be added as 'request' or 'response' middleware, based on the argument provided in the decorator. Response middleware receives both the request and the response as arguments.
## Examples
```python
app = Sanic(__name__)
2016-10-14 12:51:08 +01:00
@app.middleware
2016-10-14 12:58:09 +01:00
async def halt_request(request):
print("I am a spy")
@app.middleware('request')
2016-10-14 12:51:08 +01:00
async def halt_request(request):
return text('I halted the request')
@app.middleware('response')
async def halt_response(request, response):
return text('I halted the response')
@app.route('/')
async def handler(request):
return text('I would like to speak now please')
app.run(host="0.0.0.0", port=8000)
```