Backend et SDK

API tierces (b77.http)

Appelez n'importe quelle API HTTPS avec vos clés secrètes, sans les exposer.

b77.http.fetch appelle une API HTTPS tierce depuis les serveurs de builder77. Vos clés d'API sont stockées dans Réglages → Clés secrètes et s'écrivent dans le code sous la forme {{secret:NAME}} : le serveur les insère, elles n'atteignent donc jamais le navigateur.

const res = await b77.http.fetch('https://api.openai.com/v1/chat/completions', {
  method: 'POST',                                          // default GET
  headers: { Authorization: 'Bearer {{secret:OPENAI_API_KEY}}' },
  body: { model: 'gpt-4o-mini', messages: [{ role: 'user', content: 'Hi!' }] }, // object → JSON, or a string
});
if (res.ok) console.log(res.data);  // { ok, status, headers, body (text), data (parsed JSON or null) }

Chaque appel utilise 1 crédit d'intégration. https uniquement, délai d'expiration de 15 secondes, réponses jusqu'à 1 Mo. Si une API renvoie votre clé, celle-ci est remplacée par [secret] avant que votre application ne voie la réponse.

Règles de chaque clé

Toute personne utilisant votre application peut effectuer des appels avec une clé secrète, sans la voir. Chaque clé ne fonctionne donc que de la manière que vous autorisez :

  • Hôtes autorisés — les seuls serveurs auxquels elle est envoyée (par ex. api.openai.com ; *.example.com couvre les sous-domaines).
  • Méthodes autorisées — GET et POST par défaut.
  • Chemins autorisés — préfixes de chemin facultatifs, comme /v1/chat/. Vide = tous les chemins.
  • Où la clé peut être placée — par défaut, uniquement dans un en-tête d'authentification (Authorization, X-Api-Key, Api-Key, X-Goog-Api-Key, etc.). Les paramètres de requête (par nom, par ex. key), le chemin de l'URL et le corps de la requête restent désactivés tant que vous ne les activez pas.

Un appel qui enfreint une règle est refusé avec le statut 403, avant tout envoi.

Clés dans l'URL ou le corps

Privilégiez les API qui attendent la clé dans un en-tête. Certaines la placent plutôt dans l'adresse : autorisez exactement cet emplacement et restreignez le chemin.

// Settings → Secrets: TELEGRAM_TOKEN, host api.telegram.org, "In the URL path" on,
// allowed path /bot{{secret:TELEGRAM_TOKEN}}/sendMessage
await b77.http.fetch('https://api.telegram.org/bot{{secret:TELEGRAM_TOKEN}}/sendMessage', {
  method: 'POST',
  body: { chat_id: 12345, text: 'New booking!' },
});

N'autorisez Dans le corps de la requête que si l'API l'exige : toute personne utilisant votre application pourrait alors écrire la clé dans tout ce que cette API enregistre (un message, une note, un fichier public), puis la relire.