Skip to content

Commit 34d33b8

Browse files
committed
Add Rate Limiter using Redis
1 parent ed70d1b commit 34d33b8

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

app/api/v1/logs.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,24 @@
22
from sqlalchemy.orm import Session
33
from typing import List
44

5-
from app.db.database import get_db # Pastikan path ini sesuai dengan file koneksi DB kamu
5+
# --- IMPORT RATE LIMITER ---
6+
from fastapi_limiter.depends import RateLimiter
7+
8+
from app.db.database import get_db
69
from app.crud import log as crud_log
710
from app.schemas.log import LogResponse
811

912
router = APIRouter()
1013

11-
@router.get("/{device_id}", response_model=List[LogResponse])
14+
# --- TEMPELKAN DI SINI (dependencies) ---
15+
# times=5, seconds=10 artinya: Max 5 request dalam 10 detik.
16+
@router.get("/{device_id}", response_model=List[LogResponse], dependencies=[Depends(RateLimiter(times=5, seconds=10))])
1217
def read_device_logs(
1318
device_id: str,
1419
limit: int = 20,
1520
db: Session = Depends(get_db)
1621
):
17-
"""
18-
Ambil histori data sensor.
19-
Contoh: GET /api/logs/ALAT_PALSU_01?limit=5
20-
"""
2122
logs = crud_log.get_logs_by_device(db, device_id=device_id, limit=limit)
2223
if not logs:
23-
# Kita tidak return 404, tapi list kosong saja biar frontend gak error
2424
return []
2525
return logs

0 commit comments

Comments
 (0)