API REST pour les intégrations e-commerce : authentification, limites et erreurs
Les intégrations échouent presque toujours pour les mêmes raisons : jetons expirés, limites de requêtes et erreurs non gérées. Voici les règles pour l'éviter.
Presque toutes les intégrations d'une boutique dialoguent avec des API REST : celle de l'ERP, de la passerelle, du transporteur, de la boutique elle-même. Ces règles évitent la plupart des problèmes.
Authentification
- Clés d'API : simples. Conservez-les hors du code (configuration chiffrée, variables d'environnement), et une par intégration.
- OAuth2 : des jetons qui expirent. Renouvelez le jeton avant son expiration et gérez l'erreur 401 en renouvelant puis en réessayant une fois.
- N'envoyez jamais d'identifiants en HTTP non chiffré ni dans l'URL.
Pagination et filtres
Ne demandez pas « toutes les commandes ». Demandez celles modifiées depuis la dernière synchronisation, par pages. Enregistrez l'horodatage de la dernière synchronisation réussie, pas celui de la dernière tentée.
Limites de requêtes
La plupart des API limitent le nombre de requêtes par minute. Quand vous le dépassez, elles répondent 429. Respectez l'en-tête Retry-After et attendez avec un délai croissant.
for ($intento = 0; $intento < 5; $intento++) {
$r = llamar($url);
if ($r->status !== 429 && $r->status < 500) {
break;
}
sleep(min(60, 2 ** $intento));
}
Erreurs
- 4xx : l'erreur vient de vous (données mal formées, pas de permission). Ne réessayez pas sans corriger.
- 5xx et délais d'attente dépassés : réessayez avec une attente.
- Journalisez la requête et la réponse (sans données sensibles) de chaque erreur.