Retour à la leçonMission
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.