पाठ 13 / 26

Middleware Pipeline

Middleware का क्रम समझें और एक छोटा custom middleware लिखें।

चरणों की श्रृंखला

हर middleware next() बुलाकर अगले से पहले और बाद में कोड चला सकता है। क्रम मायने रखता है: Program.cs का क्रम ही requests का रास्ता है, और responses उल्टे क्रम में लौटते हैं।

Inline timing middleware

यह मापता है कि बाक़ी pipeline में कितना समय लगा और उसे log करता है। await next() के बाद का कोड वापसी पर चलता है।

app.Use(async (context, next) =>
{
    var sw = System.Diagnostics.Stopwatch.StartNew();
    await next();
    sw.Stop();
    app.Logger.LogInformation("{Path} took {Ms} ms", context.Request.Path, sw.ElapsedMilliseconds);
});

हवाई अड्डे की जाँच

यात्री ID जाँच, सामान स्कैन और फिर बोर्डिंग से गुज़रते हैं, और लौटते समय उल्टा क्रम होता है। जो middleware जल्दी रोक दे, जैसे ID जाँच में फ़ेल होना, request को आगे के चरणों तक पहुँचने ही नहीं देता।

त्वरित जाँच: अगर कोई middleware कभी next() नहीं बुलाए तो क्या होगा?

  • Request वहीं रुक जाती है
  • Server restart हो जाता है
  • अगला middleware दो बार चलता है
  • ऐप compile नहीं होता
Answer

Request वहीं रुक जाती है — `next()` न बुलाने से pipeline वहीं रुक जाती है; बाद के middleware और endpoint कभी नहीं चलते।