Extend example of modifying the request in middleware document
This commit is contained in:
parent
613b23748d
commit
ec5b790b51
|
@ -41,7 +41,7 @@ A list of Sanic extensions created by the community.
|
||||||
|
|
||||||
## Project Creation Template
|
## Project Creation Template
|
||||||
|
|
||||||
- [cookiecutter-sanic](https://github.com/harshanarayana/cookiecutter-sanic) Get your sanic application up and running in a matter of second in a well defined project structure.
|
- [cookiecutter-sanic](https://github.com/harshanarayana/cookiecutter-sanic): Get your sanic application up and running in a matter of second in a well defined project structure.
|
||||||
Batteries included for deployment, unit testing, automated release management and changelog generation.
|
Batteries included for deployment, unit testing, automated release management and changelog generation.
|
||||||
|
|
||||||
## Templating
|
## Templating
|
||||||
|
|
|
@ -36,20 +36,31 @@ this.
|
||||||
```
|
```
|
||||||
app = Sanic(__name__)
|
app = Sanic(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
@app.middleware('request')
|
||||||
|
async def add_key(request):
|
||||||
|
# Add a key to request object like dict object
|
||||||
|
request['foo'] = 'bar'
|
||||||
|
|
||||||
|
|
||||||
@app.middleware('response')
|
@app.middleware('response')
|
||||||
async def custom_banner(request, response):
|
async def custom_banner(request, response):
|
||||||
response.headers["Server"] = "Fake-Server"
|
response.headers["Server"] = "Fake-Server"
|
||||||
|
|
||||||
|
|
||||||
@app.middleware('response')
|
@app.middleware('response')
|
||||||
async def prevent_xss(request, response):
|
async def prevent_xss(request, response):
|
||||||
response.headers["x-xss-protection"] = "1; mode=block"
|
response.headers["x-xss-protection"] = "1; mode=block"
|
||||||
|
|
||||||
|
|
||||||
app.run(host="0.0.0.0", port=8000)
|
app.run(host="0.0.0.0", port=8000)
|
||||||
```
|
```
|
||||||
|
|
||||||
The above code will apply the two middleware in order. First, the middleware
|
The above code will apply the three middleware in order. The first middleware
|
||||||
|
**add_key** will add a new key `foo` into `request` object. This worked due to
|
||||||
|
`request` object can be manipulated like `dict` object. Then, the second middleware
|
||||||
**custom_banner** will change the HTTP response header *Server* to
|
**custom_banner** will change the HTTP response header *Server* to
|
||||||
*Fake-Server*, and the second middleware **prevent_xss** will add the HTTP
|
*Fake-Server*, and the last middleware **prevent_xss** will add the HTTP
|
||||||
header for preventing Cross-Site-Scripting (XSS) attacks. These two functions
|
header for preventing Cross-Site-Scripting (XSS) attacks. These two functions
|
||||||
are invoked *after* a user function returns a response.
|
are invoked *after* a user function returns a response.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user