Files
sqlalchemy-fastapi-pydentic…/server/backend/rate_limit.py
T
2025-10-05 15:15:32 +03:00

15 lines
560 B
Python

from slowapi import Limiter
from slowapi.util import get_remote_address
from slowapi.errors import RateLimitExceeded
from fastapi.responses import JSONResponse
from fastapi import Request
# создаём limiter с глобальным лимитом
limiter = Limiter(key_func=get_remote_address, default_limits=["10/minute"])
# обработчик ошибок
async def ratelimit_handler(request: Request, exc: RateLimitExceeded):
return JSONResponse(
status_code=429,
content={"detail": "Too many requests, try again later."},
)