Sobes.tech
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-адреса.