From 543bc84f7061df3f1bed82d90659185a1fe4ad66 Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Thu, 12 Mar 2026 12:08:21 +0700 Subject: [PATCH] feat: configure default rate limits and integrate SlowAPI middleware --- src/main.py | 3 +++ src/rate_limiter.py | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main.py b/src/main.py index 8eeb0cf..2972868 100644 --- a/src/main.py +++ b/src/main.py @@ -12,6 +12,7 @@ from fastapi.responses import JSONResponse from pydantic import ValidationError from slowapi import _rate_limit_exceeded_handler from slowapi.errors import RateLimitExceeded +from slowapi.middleware import SlowAPIMiddleware from sqlalchemy import inspect from sqlalchemy.ext.asyncio import async_scoped_session from sqlalchemy.orm import scoped_session @@ -56,6 +57,8 @@ app.add_exception_handler(RateLimitExceeded, handle_exception) app.state.limiter = limiter app.add_middleware(GZipMiddleware, minimum_size=1000) +app.add_middleware(SlowAPIMiddleware) + # credentials: "include", diff --git a/src/rate_limiter.py b/src/rate_limiter.py index 38404a8..555e2ac 100644 --- a/src/rate_limiter.py +++ b/src/rate_limiter.py @@ -1,4 +1,7 @@ from slowapi import Limiter from slowapi.util import get_remote_address -limiter = Limiter(key_func=get_remote_address) +limiter = Limiter( + key_func=get_remote_address, + default_limits=["20000 per hour", "100000 per day"] +)