fastapi_middleware_toolkit.cache_control¶
Cache-Control middleware for FastAPI applications.
Sets safe default Cache-Control headers if route didn’t set them.
Attributes¶
Classes¶
Middleware that sets default Cache-Control headers if not set by route. |
Functions¶
|
Setup Cache-Control middleware for FastAPI application. |
Module Contents¶
- fastapi_middleware_toolkit.cache_control.logger¶
- class fastapi_middleware_toolkit.cache_control.CacheControlMiddleware(app, default_cache_control: str = 'public, max-age=60, stale-while-revalidate=30')¶
Bases:
starlette.middleware.base.BaseHTTPMiddlewareMiddleware that sets default Cache-Control headers if not set by route.
Prevents accidental caching of sensitive data by setting safe defaults. Routes can override by setting Cache-Control explicitly.
- Args:
- default_cache_control: Default header value to use.
Default: “public, max-age=60, stale-while-revalidate=30”
- Examples:
>>> app = FastAPI() >>> app.add_middleware( ... CacheControlMiddleware, ... default_cache_control="no-store" ... )
- default_cache_control = 'public, max-age=60, stale-while-revalidate=30'¶
- async dispatch(request: starlette.requests.Request, call_next: Callable) starlette.responses.Response¶
Process request and set Cache-Control if not already set.
- fastapi_middleware_toolkit.cache_control.setup_cache_control_middleware(app: fastapi.FastAPI, default_cache_control: str = 'public, max-age=60, stale-while-revalidate=30') None¶
Setup Cache-Control middleware for FastAPI application.
Sets safe default Cache-Control headers if routes don’t set them.
- Args:
app: FastAPI application instance default_cache_control: Default header value to use.
Default: “public, max-age=60, stale-while-revalidate=30”
- Common patterns:
“public, max-age=60, stale-while-revalidate=30” (default, moderate caching)
“no-store” (no caching, for sensitive data)
“public, max-age=3600” (1 hour cache)
“private, max-age=0, must-revalidate” (browser only, always validate)
- Examples:
>>> app = FastAPI() >>> setup_cache_control_middleware(app) >>> setup_cache_control_middleware(app, "no-store")