dataflow.api.middleware.rate_limit¶

Attributes¶

Classes¶

RateLimitMiddleware

Middleware for rate limiting API requests.

Module Contents¶

class dataflow.api.middleware.rate_limit.RateLimitMiddleware(app, rate_limit_per_minute: int = 60, window_seconds: int = 60)¶

Bases: starlette.middleware.base.BaseHTTPMiddleware

Middleware for rate limiting API requests.

Parameters:
  • rate_limit_per_minute (int)

  • window_seconds (int)

async dispatch(request: fastapi.Request, call_next: starlette.middleware.base.RequestResponseEndpoint) fastapi.Response¶

Process the request with rate limiting.

Parameters:
  • request (fastapi.Request)

  • call_next (starlette.middleware.base.RequestResponseEndpoint)

Return type:

fastapi.Response

rate_limit = 60¶
request_history: dict[str, list[tuple[float, int]]]¶
window = 60¶
dataflow.api.middleware.rate_limit.logger¶