1. Pycham के साथ stack trace को फॉलो करके देखना एक बार ज़रूर आज़माने लायक है.
    1. आप देख सकते हैं कि इस्तेमाल होने वाले variables की क्या values हैं, और अगर वह instance है तो उसके पास कौन-से attrs हैं.
  2. ऐसा लगता है कि FastAPI, Starlette के बिना मौजूद नहीं हो सकता.
    1. इसका base class भी Starlette को inherit करके बनाया गया है, और Request, Response, Router, Middleware आदि सब Starlette पर आधारित हैं.
    2. FastAPI code की तुलना में starlette code ज़्यादा देखने को मिलता है.
    3. यह भी लगता है कि FastAPI को हटाकर केवल Starlette से भी app बनाया जा सकता है.
  3. Uvicorn ↔ Starlette ↔ FastAPI की भूमिकाएँ और अधिक स्पष्ट महसूस होती हैं.
    1. Uvicorn: बाहरी communication interface
    2. Starlette: server के अंदरूनी operation interface
    3. FastAPI: Starlette के ऊपर endpoint func लिखने की सुविधा (Depends(), Pydantic के जरिए params validation आदि) जोड़कर Uvicorn के साथ interact करता है
  4. middleware के बारे में समझ थोड़ी और बढ़ी.
    1. यह समझ आता है कि Request processing, ServerErrorMiddleware → custom middlewares → ExceptionMiddleware के क्रम में होती है.
    2. @app.exception_handler(Exception) से लगाए गए handler को ExceptionMiddleware में process किया जाता है, और बाकी server errors को ServerErrorMiddleware संभालता है.
    3. middlewares की blocking रोकने के लिए एक अलग thread group फिर से चलाया जाता है.

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.