From 813ed6f4e2b660139982b1728e8d6e848beabd0c Mon Sep 17 00:00:00 2001 From: Cizz22 Date: Tue, 10 Mar 2026 11:50:51 +0700 Subject: [PATCH] feat: integrate SlowAPIMiddleware and configure default rate limits. --- 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 984b127..ac06c66 100644 --- a/src/main.py +++ b/src/main.py @@ -13,6 +13,7 @@ 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.orm import scoped_session from sqlalchemy.ext.asyncio import async_scoped_session @@ -57,6 +58,8 @@ app.add_exception_handler(SQLAlchemyError, handle_exception) app.state.limiter = limiter app.add_middleware(GZipMiddleware, minimum_size=2000) +app.add_middleware(SlowAPIMiddleware) + app.add_middleware(RequestValidationMiddleware) 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"] +)