Bonnes pratiques

Patterns recommandés pour construire des intégrations robustes et performantes avec les APIs STEF.

Gestion du rate limiting

Respectez les headers de rate limiting retournés par l'API :

HeaderDescription
X-RateLimit-LimitNombre maximum de requêtes par fenêtre
X-RateLimit-RemainingRequêtes restantes dans la fenêtre en cours
X-RateLimit-ResetTimestamp de réinitialisation de la fenêtre
Retry-AfterSecondes à attendre (en cas de 429)

Sécurité

Stockage des secrets

Ne stockez jamais vos Client Secret ou API Key directement dans le code source.

Utilisez les variables d'environnement ou un gestionnaire de secrets :

# .env
STEF_CLIENT_ID=your_client_id
STEF_CLIENT_SECRET=your_client_secret
# .gitignore
.env

Performance

Mise en cache

  • Cachez les réponses des endpoints de lecture qui ne changent pas fréquemment
  • Respectez les headers Cache-Control et ETag
  • Utilisez les requêtes conditionnelles (If-None-Match, If-Modified-Since)

Pagination efficace

  • Utilisez la pagination cursor-based fournie par l'API
  • Limitez le nombre d'éléments par page (limit) au strict nécessaire
  • Évitez de charger toutes les pages en une seule fois

Compression

Activez la compression gzip dans vos requêtes :

curl -X GET "https://api.stef.com/v1/transport/orders" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept-Encoding: gzip"

Monitoring

  • Logguez les temps de réponse et les codes de retour
  • Mettez en place des alertes sur les erreurs 4xx et 5xx
  • Surveillez votre consommation de quotas via le tableau de bord du portail