Performance: Shared dependencies
MEDIUM IMPACT
This affects server response time and resource usage by reusing common logic or resources across multiple routes.
from fastapi import Depends from fastapi import FastAPI app = FastAPI() shared_db = None def get_shared_db(): global shared_db if shared_db is None: shared_db = create_new_db_connection() try: yield shared_db finally: pass # Do not close shared connection here @app.get('/items') async def read_items(db=Depends(get_shared_db)): return db.query_items() @app.get('/users') async def read_users(db=Depends(get_shared_db)): return db.query_users()
from fastapi import Depends from fastapi import FastAPI app = FastAPI() def get_db(): db = create_new_db_connection() try: yield db finally: db.close() @app.get('/items') async def read_items(db=Depends(get_db)): return db.query_items() @app.get('/users') async def read_users(db=Depends(get_db)): return db.query_users()
| Pattern | Resource Usage | Request Latency | Throughput | Verdict |
|---|---|---|---|---|
| Separate dependency per endpoint | High (multiple connections) | Higher (connection setup per request) | Lower | [X] Bad |
| Shared dependency instance | Low (single shared connection) | Lower (reuse connection) | Higher | [OK] Good |