Retour à la leçon
Mission

Mission : retrouver pourquoi un en-tête disparaît en streaming

Diagnostiquer pourquoi un middleware de timing FastAPI n'ajoute pas son en-tête sur une réponse en streaming, en manipulant directement scope/receive/send.

Contexte

Un middleware ASGI middleware_timing ajoute un en-tête X-Response-Time en interceptant send au moment où le message "type": "http.response.start" passe. Sur une route classique, l'en-tête apparaît bien dans la réponse. Sur une route qui streame sa réponse en plusieurs morceaux avec "more_body": True, l'en-tête est absent la moitié du temps, selon le timing exact du serveur.

Tu dois comprendre pourquoi send est appelé plusieurs fois pour une réponse en streaming, corriger le middleware, puis écrire une petite application ASGI minimale sans framework.