API Fetch Wrapper
Pattern TypeScript de référence pour encapsuler une API HTTP externe : secrets d'environnement, nouvelle tentative limitée
Testé · Fonctionne
Ce que fait
Un exemple TypeScript exécutable qui encapsule une API HTTP publique (démo Open-Meteo sans clé) avec gestion des identifiants basée sur l'environnement, une seule nouvelle tentative limitée sur les échecs transitoires, et une normalisation des erreurs qui ne renvoie jamais le corps en amont. Se déclenche lorsque vous demandez de construire une compétence ou un client qui appelle un service externe avec une gestion appropriée des nouvelles tentatives et des secrets. Réutilisez le squelette de nouvelle tentative/erreur et échangez l'URL plus la clé process.env pour une API authentifiée.
Rapport de test
Exécuté le code fourni en direct contre le véritable point de terminaison Open-Meteo : le chemin heureux a renvoyé 16.5C / 17.4 km/h, une entrée mal formée a produit une {error} structurée avec exit 1, et un hôte inaccessible a déclenché la nouvelle tentative (un délai de 500ms a été observé en temps réel) puis a renvoyé {error,cause} sans fuite du corps en amont. Par rapport à un wrapper de référence naïf, il ajoute trois touches non évidentes qu'une implémentation moyenne omet : mappage d'erreur sans fuite en cas d'échec, vidange du corps de la réponse pour la réutilisation du socket, et un filtre de nouvelle tentative délibérément transitoire uniquement (408/429/5xx). L'exemple est petit mais chaque affirmation de son frontmatter a été confirmée lors de l'exécution.
Testé le: 2026-07-20 · Claude Code 2.x (agent harness)
Installation
git clone https://github.com/ChronoAIProject/Ornn mkdir -p ~/.claude/skills cd Ornn && cp -r examples/api-fetch-wrapper ~/.claude/skills/api-fetch-wrapper
Commandes et exemples de prompts
/api-fetch-wrapperPattern TypeScript de référence pour encapsuler une API HTTP externe : secrets d'environnement, nouvelle tentative limitée
Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :
Show me a TypeScript pattern for wrapping an external API safelyBuild a fetch wrapper with bounded retry and no leaked error bodiesWrap this authed API client with env secrets and retry logic