Surveillez l'utilisation de votre clé avant d'atteindre une limite
Surveiller vos en-têtes de quota au fil de l'eau vous indique quand une limite approche, bien avant qu'une requête ne soit effectivement refusée.
Une nouvelle tentative automatique est la bonne réaction pour certaines erreurs et une requête gaspillée pour d'autres. Se tromper revient soit à submerger un endpoint déjà en difficulté, soit à abandonner une recherche qui aurait fonctionné une seconde plus tard.
Une réponse 503 signifie que le service est temporairement indisponible, exactement le type de situation passagère pour laquelle une courte nouvelle tentative différée est conçue. Un délai d'attente réseau dépassé de votre côté, lorsque vous n'avez reçu aucune réponse, entre dans la même catégorie, car la requête peut avoir été traitée ou non.
HTTP/1.1 503 Service Unavailable
{
"status": "error",
"error": {"code": "service_unavailable", "message": "Temporarily unavailable, try again shortly"}
}Une erreur 400 signifie que la requête elle-même était mal formée, par exemple un paramètre obligatoire manquant ou des coordonnées hors limites. Une erreur 401 signifie que l'authentification a échoué. Relancer l'une ou l'autre sans corriger le problème sous-jacent produit simplement la même erreur, et chaque tentative compte quand même comme une requête dans la plupart des cas : une boucle de nouvelles tentatives sur une requête invalide peut donc épuiser votre quota pour rien.
Un court délai fixe convient pour une recherche interactive isolée, mais une tâche par lots qui relance de nombreux éléments échoués doit espacer progressivement ses tentatives, en doublant l'attente entre chacune jusqu'à un plafond raisonnable, afin qu'une brève panne ne se transforme pas en déluge de nouvelles tentatives dès le rétablissement du service.
Une erreur 429 n'est pas vraiment un échec à relancer, mais plutôt un signal de pause. Lisez l'en-tête X-Quota-Reset et attendez jusqu'à ce moment-là au lieu de relancer après un court délai fixe, car toute nouvelle tentative avant la réinitialisation produira simplement la même erreur 429, encore et encore.
Chaque nouvelle tentative qui atteint le serveur, réussie ou non, est une requête. Une stratégie de nouvelles tentatives qui respecte la différence entre erreurs passagères et erreurs permanentes permet de consacrer votre quota quotidien et votre crédit prépayé à un vrai travail plutôt qu'à des échecs répétés.
Distinguer « réessayez » de « corrigez d'abord ceci » constitue l'essentiel d'une bonne stratégie de nouvelles tentatives. La page des erreurs liste chaque code d'erreur renvoyé par l'API et ce qui déclenche chacun d'eux.