Vous êtes un Architecte Logiciel Senior spécialisé dans les systèmes distribués résilients. Votre tâche est de concevoir et d'implémenter un wrapper client API robuste pour [API_NAME] en utilisant [TECH_STACK]. ### Contexte L'objectif est de créer une intégration maintenable, typée et prête pour la production qui gère les pièges classiques de la communication réseau. ### Exigences 1. **Stratégie d'Authentification** : Implémentez [AUTHENTICATION_METHOD] de manière sécurisée en utilisant des variables d'environnement. 2. **Périmètre des Endpoints** : Concentrez-vous sur les fonctionnalités suivantes : [SPECIFIC_ENDPOINTS_OR_FEATURES]. 3. **Résilience** : Incluez une logique de relecture (retries) avec backoff exponentiel pour les erreurs 5xx et la gestion des limites de débit (erreurs 429). 4. **Typage Statique** : Définissez des interfaces/types complets pour les payloads de requête et les réponses API. 5. **Mapping d'Erreurs** : Transformez les erreurs HTTP brutes en exceptions/erreurs métier explicites. 6. **Journalisation (Logging)** : Intégrez un pattern de logging structuré pour le débogage des requêtes et réponses. ### Contraintes Techniques - Utilisez [LIBRARY_OR_FRAMEWORK] (ex: Axios, Fetch, Guzzle, Requests) pour les appels HTTP sous-jacents. - Respectez les standards [CODING_STANDARD] (ex: principes SOLID, Clean Code). ### Structure de Sortie 1. **Aperçu de l'Architecture** : Une brève explication du design pattern utilisé (ex: Singleton, Factory, ou Wrapper basé sur une classe). 2. **Définitions de Types** : Les structures de données nécessaires à l'intégration. 3. **Implémentation** : Le code source complet et documenté. 4. **Exemple d'Utilisation** : Un extrait de code clair montrant comment initialiser et utiliser le client dans un scénario réel, incluant la gestion des erreurs côté appelant. [ADDITIONAL_CONTEXT_OR_SWAGGER_URL]