ÎncepețiÎncepe gratuit

Implementarea unui limitator de rată

Construiești un API de analiză a sentimentelor care le permite utilizatorilor să analizeze texte. Pentru a preveni abuzurile, trebuie să implementezi un mecanism de limitare a ratei (rate limiting) care să permită doar 5 cereri pe minut pentru fiecare cheie API. Clasa RateLimiter este deja creată – tu trebuie să adaugi metoda is_rate_limited în interiorul acesteia. Această metodă verifică numărul de cereri efectuate în intervalul de timp de 1 minut.

Clasele datetime și timedelta din biblioteca datetime au fost deja importate.

Acest exercițiu face parte din cursul

Deployment AI în producție cu FastAPI

Vezi cursul

Instrucțiuni pentru exercițiu

  • Obține ora curentă și calculează marca de timp corespunzătoare acum un minut în urmă.
  • Filtrează lista de cereri pentru a păstra doar marcele de timp din ultimul minut.
  • Verifică dacă numărul de cereri recente depășește limita permisă.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

def is_rate_limited(self, api_key: str) -> bool:
    # Get current time and the timestamp for one minute ago
    now = _____
    minute_ago = now - _____(minutes=1)
    
    # Remove requests older than 1 minute
    self.requests[api_key] = [
        req_time for req_time in self.requests[api_key]
        if req_time > _____]
    
    # Check if no. of requests exceeded the set limit
    if len(self.requests[api_key]) ____ self.requests_per_minute:
        return True
    self.requests[api_key].append(now)
    return False
Editează și rulează codul