15 lines
560 B
Python
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."},
|
||
) |