Back to questions
СБЕР
Junior — Middle
65
Использовал ли ты ограничение количества запросов в FastAPI?
Companies where asked
Answer from AI
sobes.tech AI
В FastAPI ограничение количества запросов (rate limiting) не встроено напрямую, но его можно реализовать с помощью сторонних библиотек, например, slowapi или fastapi-limiter. Это полезно для защиты API от чрезмерной нагрузки и предотвращения злоупотреблений.
Пример с использованием slowapi:
from fastapi import FastAPI, Request
from slowapi import Limiter
from slowapi.util import get_remote_address
from slowapi.errors import RateLimitExceeded
from fastapi.responses import JSONResponse
app = FastAPI()
limiter = Limiter(key_func=get_remote_address)
app.state.limiter = limiter
@app.exception_handler(RateLimitExceeded)
async def rate_limit_handler(request: Request, exc: RateLimitExceeded):
return JSONResponse(status_code=429, content={"detail": "Too Many Requests"})
@app.get("/items")
@limiter.limit("5/minute")
async def read_items():
return {"message": "Hello, world!"}
Здесь ограничение позволяет делать не более 5 запросов в минуту с одного IP-адреса.