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}')

Sources