Starlette 1.7 est sorti
par Makersquad ·
Date de sortie : 23 septembre 2026
Documentation officielle : Starlette 1.7.0
Starlette 1.7 apporte de l’observabilité native, la méthode HTTP QUERY et de nombreux correctifs sur CORS, les sessions et les fichiers statiques. Elle exige désormais AnyIO 4.
Les nouveautés principales
Tracing OpenTelemetry (expérimental)
OpenTelemetryMiddleware produit des spans de serveur HTTP, avec exclusion d’URL et fournisseur de traces personnalisable. La route trouvée est aussi exposée dans scope["route"].
Ce middleware est expérimental. Son API et la télémétrie émise peuvent changer dans une version mineure, sans période de dépréciation.
Méthode QUERY
La méthode HTTP QUERY est prise en charge dans HTTPEndpoint, dans CORS et dans la génération de schéma OpenAPI 3.2.
Côté tests et sécurité des cookies
TestClientcapture les trailers de réponse, accessibles parresponse.extensions["http.response.trailers"].SessionMiddlewaregère les cookies partitionnés, etResponse.delete_cookie()acceptepartitionedà partir de Python 3.14.- Les hôtes IPv6 sont acceptés par
TrustedHostMiddlewareetTestClient. - Python 3.15 est pris en charge.
Correctifs notables
- Avec
BaseHTTPMiddleware, les tâches d’arrière-plan ne s’exécutent qu’une fois la réponse envoyée. - Les réponses CORS normales portent
Vary: Origin, et les préflights varient selon les en-têtes de requête concernés. - Un multipart invalide renvoie une erreur 400.
CORSMiddlewareaccepte touteCollection[str], ensembles compris : l’annotation s’élargit, rien à changer.- Les modifications de session faites avec
popitem()et|=sont conservées. StaticFilesgèreIf-None-Match: *seul et refuse proprement les requêtes WebSocket.
Changements incompatibles
anyio>=4.0.0,<5est requis, AnyIO 3 n’est plus pris en charge.- Les opérations sur une WebSocket déconnectée lèvent
WebSocketDisconnected, une sous-classe deRuntimeError.
À retenir
Starlette 1.7 apporte le tracing OpenTelemetry (expérimental) et la méthode QUERY. Avant de mettre à jour, vérifiez que votre projet tourne sur AnyIO 4 et que votre code gère WebSocketDisconnected.