FastAPI rate limit with python

Usage

NOTE you have to define starlette.requests.Request as first argument

from farlimit import Limiter from fastapi import APIRouter from starlette.requests import Request router = APIRouter(...) @router.<any-method>(path) @Limiter(times=3, per=5 * Limiter.SECONDS) def test_ratelimit(request: Request): return 'no limit'
  • RedisMemory
  • custom identifier
  • custom execption handler or callbacks
  • some api for reports
  • could we handle race condition?

GitHub

 

To finish reading, please visit source site