add basic rate limiting

This commit is contained in:
2025-07-01 11:38:38 -04:00
parent 1991e5b31b
commit c3f753a4f0
9 changed files with 64 additions and 20 deletions

View File

@ -1,5 +1,10 @@
import logging
from fastapi import FastAPI, Request, Response
from fastapi import (
FastAPI,
Request,
Response,
Depends)
from fastapi_throttle import RateLimiter
from fastapi.responses import JSONResponse
from utils.meme_util import MemeUtil
@ -22,7 +27,11 @@ class Meme(FastAPI):
for endpoint, handler in self.endpoints.items():
app.add_api_route(
f"/{endpoint}", handler, methods=["GET"], include_in_schema=True
f"/{endpoint}", handler,
methods=["GET"], include_in_schema=True,
dependencies=[Depends(
RateLimiter(times=2, seconds=2)
)]
)
async def get_meme_by_id(self, id: int, request: Request) -> Response: