Appels API : réduire le travail et maîtriser les reprises

À retenir

Une API efficace évite les échanges inutiles tout en préservant la fraîcheur des données et le résultat métier. Le nombre d’appels, le volume transféré et le temps d’attente se mesurent séparément.

Allée sécurisée de serveurs et de réseaux, sans personnel Illustration · scène fictive
Dans cet article

Comparer un même parcours

Exemple fictif en kilooctets décimaux : le parcours initial appelle 100 fois une réponse de 100 kB ; le candidat appelle 20 fois une réponse de 50 kB. Le volume passe de 10000 à 1000 kB, soit 90 % de moins. Cela ne prouve pas une baisse identique de la latence. Le calcul porte uniquement sur les corps des réponses, hors requêtes et en-têtes.

Mesure fictiveInitialCandidat
Appels10020
Volume par réponse100 kB50 kB
Volume total10000 kB1000 kB
Durée du parcoursÀ mesurerÀ mesurer

Réduire avant de paralléliser

  • Ne demandez que les champs utiles et parcourez les pages selon le contrat. Un lot doit préciser les résultats partiels et les limites ; une taille de page plus grande n’est pas toujours plus rapide.
  • Réutilisez les connexions et les réponses lorsque leur contexte et leur fraîcheur le permettent. Limitez la concurrence et mesurez aussi le coût serveur et les files d’attente.
  • Fixez un délai total et un nombre maximal de tentatives. Pour une panne transitoire, espacez les reprises avec une part aléatoire ; vérifiez les reprises déjà présentes dans les différentes couches.

Éviter de refaire une action déjà exécutée

Une expiration côté client ne démontre pas l’annulation côté serveur. Avant de répéter une création ou un paiement, consultez l’état et le mécanisme d’idempotence prévu par le fournisseur. Comparez ensuite durée du parcours, erreurs et exactitude des données sur une charge représentative.

Références primaires

Appels API : examiner le travail derrière la réponse

Une requête GraphQL unique peut déclencher de nombreux appels en aval. La latence affichée au client cache alors le coût des résolveurs, listes et relations parcourues.

  • Tracer une opération du client jusqu’aux services appelés.
  • Comparer coût des champs et volume réellement utile.
  • Limiter listes et requêtes répétées avant de mettre en cache.

Référence primaire : OWASP — GraphQL Cheat Sheet. Méthode connexe : consulter le guide pratique.

Retry-After : attente, budget et décision de reprise

Réduire les appels inclut la maîtrise des répétitions

Une optimisation API doit compter les tentatives qui atteignent réellement la dépendance, pas seulement les requêtes déclenchées par l’écran.

  • Tracer les reprises du SDK et du proxy avec un identifiant logique commun.
  • Appliquer une attente qui ne raccourcit pas l’instruction serveur pour tenir artificiellement le budget.
  • Faire vérifier l’état d’une écriture incertaine avant de créer une nouvelle intention.

Explorer Retry-After et le modèle de reprise →

Références relues le · RFC 9110 · §9.2.2, §10.2.3 · RFC 6585 · §4 · AWS