---
# System prepended metadata

title: Throttle Übung (Modul 10)

---

# Throttle Übung (Modul 10)

## Aufgabenstellung

### 1. Repository vorbereiten
Öffne deine eigene MiniForum-App aus der Hausaufgabe von Modul 7 oder klone das bereitgestellte Repository:
```bash
git clone https://github.com/Developer-Akademie-AA/BE-Modul8-ForumAuthUebung
```

### 2. Default Throttle Classes hinzufügen
Füge in `settings.py` die `DEFAULT_THROTTLE_CLASSES` hinzu.

### 3. Throttle Rates konfigurieren
Konfiguriere in `settings.py` die `DEFAULT_THROTTLE_RATES`:
- Nicht authentifizierte Nutzer: maximal 100 Anfragen pro Stunde
- Authentifizierte Nutzer: maximal 1000 Anfragen pro Stunde
- Für Tests: gerne auf 1-3x/minute setzen

### 4. Custom Throttle Class erstellen
Lege im App-Ordner `forum_app` eine Datei `throttling.py` an und erstelle dort eine Klasse `PostThrottle` mit `scope = 'posts'`.

### 5. Scope verknüpfen
Verknüpfe diesen Scope mit deinen beiden Views für Posts und Comments, sodass maximal eine Anfrage pro Minute erlaubt ist.

### 6. Rate-Limit nur für POST-Requests
Passe die `PostThrottle`-Klasse an, sodass das Rate-Limit nur für POST-Requests gilt. Für alle anderen Methoden (z.B. GET) soll das Standard-Limit greifen.

**Tipp:** Überschreibe dazu die Methode `allow_request()`.

### 7. POST-Request testen
Teste den POST in Postman.

### 8. GET-Request testen
Teste GET-Requests. Diese sollten von den DEFAULT-Einstellungen abgedeckt sein.

**Tipp:** Diese musst du auch in der View hinzufügen.