Avancé
Stratégie de Rate Limiting API
Implémente une gestion robuste des limites de débit pour protéger une API.
📝 Prompt Inhoud
Je dois implémenter un système de rate limiting pour mon API.
Spécifications :
- Framework/Langage : [NODEJS/PHP/PYTHON/GO]
- Type d'API : [REST/GraphQL]
- Volume attendu : [X] requêtes/minute
- Types de limites : [PAR IP/PAR UTILISATEUR/PAR API KEY]
Conçois une stratégie complète de rate limiting :
**1. Algorithmes** :
- Token Bucket : Pour les bursts contrôlés
- Sliding Window : Pour les limites temporelles précises
- Fixed Window Counter : Simple et performant
- Explique quand utiliser chaque algorithme
**2. Stockage** :
- Redis : Pour la haute performance et distribution
- In-memory : Pour les applications monolithiques
- Database : Pour la persistance longue durée
**3. Implémentation** :
- Middleware ou interceptor
- Gestion des headers (X-RateLimit-Limit, X-RateLimit-Remaining)
- Réponses d'erreur (429 Too Many Requests)
- Retry-After header
**4. Patterns Avancés** :
- Rate limiting hiérarchique (global + par endpoint)
- Rate limiting adaptatif basé sur la charge
- Graceful degradation
- Circuit breaker integration
Fournis le code d'exemple complet et la configuration recommandée.