File size: 566 Bytes
734aed4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from slowapi import Limiter
from slowapi.util import get_remote_address
from slowapi.errors import RateLimitExceeded
from fastapi import FastAPI, Request
from starlette.responses import JSONResponse
# Initialize the limiter
limiter = Limiter(key_func=get_remote_address)
# Exception handler for rate limit exceeded
async def rate_limit_exceeded_handler(request: Request, exc: RateLimitExceeded):
return JSONResponse(
status_code=429,
content={"error": {"message": "Rate limit exceeded. Please wait and try again.", "type": "rate_limit"}}
)
|