Performance: Why query parameters filter data
MEDIUM IMPACT
This affects server response time and network payload size by controlling how much data is sent to the client.
from fastapi import FastAPI, Query app = FastAPI() items = [{"id": i, "value": f"Item {i}"} for i in range(1000)] @app.get("/items") def read_items(min_id: int = Query(0)): filtered = [item for item in items if item["id"] >= min_id] return filtered
from fastapi import FastAPI app = FastAPI() items = [{"id": i, "value": f"Item {i}"} for i in range(1000)] @app.get("/items") def read_items(): return items
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| No filtering (all data sent) | Minimal DOM nodes (depends on client) | 0 reflows from server data | High paint cost due to large data | [X] Bad |
| Server-side filtering with query params | Minimal DOM nodes (only filtered data) | 0 reflows from server data | Lower paint cost due to smaller data | [OK] Good |