Hub¶
Welcome to FastAPI-ratelimit documentation!
For beginners, it is recommended to read the cookbook
Quickstart¶
Install using poetry:
poetry add fastapi-ratelimiter
Install using pip:
pip install fastapi-ratelimiter
Use as dependency in handler:
import aioredis
from fastapi import Depends, FastAPI
from starlette.responses import JSONResponse
from fastapi_ratelimiter import RateLimited, RedisDependencyMarker
from fastapi_ratelimiter.strategies import BucketingRateLimitStrategy
app = FastAPI()
app.dependency_overrides[RedisDependencyMarker] = aioredis.from_url("redis://localhost")
@app.get(
"/some_expensive_call", response_class=JSONResponse,
dependencies=[
Depends(RateLimited(BucketingRateLimitStrategy(rate="10/60s")))
]
)
async def handle_test_endpoint():
return {"hello": "world"}