Quelles sont les bonnes pratiques pour un usage "raisonnable" des API ?
màj le Feb 7, 2025
Afin d'en faire une bonne utilisation et ne pas dégrader la qualité de service pour l'ensemble des usagers, des recommandations dans la façon d'utiliser les API sont souhaitables.
Exemples de mauvais usages entraînant une baisse de qualité de service global, préjudiciable donc pour tous les usagers de la plateforme, et conséquences induites :
saturation de la bande passante globale (possibilité de bannissement de l’adresse IP par nos administrateurs => plus de téléchargement possible),
sollicitation excessive de l'infrastructure par excès de la limite globale de requêtes en simultané (coupures de connexions par nos serveurs => erreurs lors des téléchargements),
sollicitation inappropriée d'une API par dépassement de quota sur une API (désactivation momentanée de l’autorisation d’accès => code HTTP 429),
sollicitation inadéquate d'une ressource par absence de donnée alors qu'un catalogue dynamique est disponible (pas d’accès à la donnée => code HTTP 404),
sollicitation redondante d’une ressource par requêtage multiple de la même ressource déjà téléchargée (cf saturation de la bande passante)
Guide détaillé
En fonction des cas de mauvais usage recensés ci-dessus, voici les recommandations que nous pouvons donner :
séquentialiser les requêtes plutôt que les paralléliser, éviter de télécharger plusieurs fois la même donnée, mettre en place un mécanisme de cache dans votre organisation,
temporiser les requêtes avec un délai entre 2 requêtes successives, gérer une reprise de téléchargement avec un délai en cas d'échec,
prendre en compte le quota de(s) l’API utilisée(s) dès la conception de votre programme afin de limiter le nombre de requêtes émises sous le plafond du quota,
utiliser les web services de catalogue dynamique pour identifier la présence de la donnée avant de la télécharger,
mettre en place un mécanisme de cache dans votre organisation.
Des indicateurs chiffrés seront donnés ultérieurement dès qu’ils auront été définis par notre Direction des Systèmes d'Information
Articles connexes