Rate Limiting
Comprendre et gérer les limites de requêtes de l'API
Rate Limiting
L'API NERP Suite applique des limites de requêtes pour garantir une utilisation équitable et protéger la stabilité du service.
Limites par défaut
| Plan | Requêtes par minute |
|---|---|
| Essential | 100 |
La limite est appliquée par clé API. Si vous avez plusieurs clés, chacune a sa propre limite.
Headers de réponse
Chaque réponse inclut des headers indiquant votre consommation :
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1704067200
| Header | Description |
|---|---|
X-RateLimit-Limit | Nombre maximum de requêtes par fenêtre |
X-RateLimit-Remaining | Requêtes restantes dans la fenêtre actuelle |
X-RateLimit-Reset | Timestamp Unix de réinitialisation |
Dépassement de limite
Si vous dépassez la limite, l'API retourne une erreur 429 Too Many Requests :
{
"statusCode": 429,
"message": "Rate limit exceeded",
"error": "Too Many Requests"
}
Attendez que la fenêtre se réinitialise avant de réessayer.
Bonnes pratiques
1. Implémentez un backoff exponentiel
Quand vous recevez une erreur 429, attendez un délai croissant avant de réessayer :
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const response = await fetch(url, options);
if (response.status === 429) {
const delay = Math.pow(2, attempt) * 1000; // 1s, 2s, 4s
await new Promise(resolve => setTimeout(resolve, delay));
continue;
}
return response;
}
throw new Error('Max retries exceeded');
}
2. Utilisez la pagination efficacement
Au lieu de récupérer toutes les données d'un coup, paginez vos requêtes :
# Page 1
GET /products?page=1&limit=50
# Page 2
GET /products?page=2&limit=50
3. Cachez les données statiques
Les données qui changent rarement (catégories, produits) peuvent être mises en cache côté client.
4. Utilisez des filtres
Réduisez le volume de données en utilisant les filtres disponibles :
# Seulement les produits d'une catégorie
GET /products?categoryId=cat_123
# Seulement le stock faible
GET /stock?lowStock=true
5. Groupez vos requêtes
Si possible, récupérez les données nécessaires en moins de requêtes plutôt que d'appeler l'API pour chaque élément.
Surveillance
Surveillez votre consommation via les headers de réponse. Si vous approchez régulièrement de la limite, contactez-nous pour discuter d'une augmentation.
Besoin de plus de requêtes ?
Si vous avez besoin d'une limite plus élevée, contactez notre équipe pour en discuter.