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

    PlanRequêtes par minute
    Essential100

    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
    HeaderDescription
    X-RateLimit-LimitNombre maximum de requêtes par fenêtre
    X-RateLimit-RemainingRequêtes restantes dans la fenêtre actuelle
    X-RateLimit-ResetTimestamp 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.