Rate Limiting
Limites de requêtes et comment les gérer
Fonctionnement
Chaque clé API dispose d’une limite de requêtes par heure (par défaut : 1000 requêtes/heure). Cette limite est configurable par l’administrateur de la clinique lors de la creation de la clé.
Le compteur utilise une fenetre fixe d’une heure, ouverte par la première requête de la clé. Toutes les requêtes de l’heure s’y ajoutent ; à la fin de la fenêtre, le compteur repart de zéro à la requête suivante.
Headers de réponse
Chaque réponse inclut des headers indiquant l’etat de votre quota :
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 847
| Header | Description |
|---|---|
X-RateLimit-Limit | Nombre maximum de requêtes par heure |
X-RateLimit-Remaining | Requêtes restantes dans la fenetre courante |
Dépassement de limite
Lorsque la limite est atteinte, l’API retourne une erreur 429 Too Many Requests :
// 429 Too Many Requests
{
"message": "Rate limit exceeded. Please try again later.",
"retryAfter": 42
}
Le header Retry-After indique le nombre de secondes a attendre avant la fin de la fenêtre (au moins 1). X-RateLimit-Reset porte la même valeur.
HTTP/1.1 429 Too Many Requests
Retry-After: 42
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 42
Bonnes pratiques
Implementez un backoff exponentiel
En cas de 429, attendez le temps indique par Retry-After, puis reessayez.
Si ca échoue encore, doublez le délai à chaque tentative.
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, options);
if (response.status === 429) {
const retryAfter = parseInt(response.headers.get('Retry-After') || '60');
const delay = retryAfter * 1000 * Math.pow(2, i);
await new Promise(r => setTimeout(r, delay));
continue;
}
return response;
}
throw new Error('Rate limit exceeded after retries');
}Mettez en cache les donnees stables
Les informations comme les types de rendez-vous ou les fiches patients changent rarement. Mettez-les en cache localement pour reduire le nombre d’appels.
Surveillez votre consommation
Loggez les headers X-RateLimit-Remaining pour anticiper les depassements
et ajuster votre rythme d’appels.
Demandez une augmentation si necessaire
Si votre intégration necessite plus de requêtes, contactez l’administrateur de la clinique pour augmenter la limite sur votre clé.