Vue d'ensemble
Sanic 21.12, publie le 27 decembre 2021, expose une API de bas niveau pour le controle des requetes et introduit un systeme de configuration personnalise.
Fonctionnalites principales
API de bas niveau
L'API de bas niveau donne un controle granulaire sur le cycle de vie des requetes HTTP, permettant d'intercepter et de manipuler les connexions avant le traitement par les handlers.
python
from sanic import Sanic, Request, json
app = Sanic('MonApp')
@app.on_request
async def avant_requete(request: Request):
"""Intercepter chaque requete."""
request.ctx.start_time = __import__('time').time()
@app.on_response
async def apres_requete(request: Request, response):
"""Ajouter des en-tetes a chaque reponse."""
elapsed = __import__('time').time() - request.ctx.start_time
response.headers['X-Process-Time'] = str(elapsed)
@app.get('/')
async def index(request: Request):
return json({'message': 'Bonjour'})
Configuration personnalisee
Le systeme de configuration accepte desormais des classes personnalisees avec validation de type et valeurs par defaut, remplacant les simples dictionnaires.
python
from sanic import Sanic
from sanic.config import Config
class MaConfig(Config):
API_KEY: str = ''
MAX_REQUETES: int = 100
DEBUG_MODE: bool = False
app = Sanic('MonApp', config=MaConfig())
app.config.API_KEY = 'cle_secrete'
app.config.MAX_REQUETES = 500
print(f'Max requetes : {app.config.MAX_REQUETES}')
