Tutorial 14~15 MinutenMittel

Rate Limiting

Schütze deine API vor Missbrauch und Überlastung.

Was du lernen wirst

  • @RateLimit Decorator anwenden
  • Dynamische Limits basierend auf Rollen
  • DDoS-Prävention
1

Basis Rate Limiting

// 10 Anfragen pro Minute erlaubt
@POST("/api/generate")
@RateLimit(10, "1m")
fn generateContent(prompt: string): string {
    return ai.generate(prompt);
}

// 100 Anfragen pro Stunde
@GET("/api/data")
@RateLimit(100, "1h")
fn getData(): Data {
    return db.fetch();
}

// Kombiniert mit Auth
@Auth
@RateLimit(1000, "1d")
@GET("/api/premium")
fn premiumEndpoint(): PremiumData {
    return fetchPremiumData();
}
2

Dynamische Limits

fn getLimitForUser(user: User): number {
    return match (user.plan) {
        "free" => 100,
        "pro" => 1000,
        "enterprise" => 10000,
        _ => 50,
    };
}

@Auth
@RateLimit(getLimitForUser, "1h")
@POST("/api/ai/generate")
fn aiGenerate(prompt: string): AIResponse {
    return ai.complete(prompt);
}

DDoS-Prävention

Das System erkennt automatisch verdächtige Muster und kann IP-Adressen temporär sperren.

Zusammenfassung

Was du gelernt hast:

  • @RateLimit Decorator
  • Dynamische Limits

Nächste Schritte:

  • Security Scanner