Backend e SDK

API di terze parti (b77.http)

Chiama qualsiasi API HTTPS con le tue chiavi segrete, senza esporle.

b77.http.fetch chiama un'API HTTPS di terze parti dai server di builder77. Le tue chiavi API si salvano in Impostazioni → Chiavi segrete e nel codice si scrivono come {{secret:NAME}}: il server le inserisce, quindi non arrivano mai al browser.

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) }

Ogni chiamata usa 1 credito di integrazione. Solo https, timeout di 15 secondi, risposte fino a 1 MB. Se un'API restituisce la tua chiave, questa viene sostituita con [secret] prima che la tua app veda la risposta.

Regole per ogni chiave

Chiunque usi la tua app può fare chiamate con una chiave segreta, senza vederla. Per questo ogni chiave funziona solo nei modi che consenti:

  • Host consentiti — gli unici server a cui viene inviata (ad es. api.openai.com; *.example.com copre i sottodomini).
  • Metodi consentiti — GET e POST per impostazione predefinita.
  • Percorsi consentiti — prefissi di percorso facoltativi come /v1/chat/. Vuoto significa qualsiasi percorso.
  • Dove può essere inserita la chiave — per impostazione predefinita solo in un header di autenticazione (Authorization, X-Api-Key, Api-Key, X-Goog-Api-Key e simili). I parametri di query (per nome, ad es. key), il percorso dell'URL e il corpo della richiesta restano disattivati finché non li attivi.

Una chiamata che viola una regola viene rifiutata con stato 403 prima che venga inviato qualsiasi dato.

Chiavi nell'URL o nel corpo

Preferisci le API che accettano la chiave in un header. Alcune la vogliono invece nell'indirizzo: consenti esattamente quella posizione e restringi il percorso.

// 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!' },
});

Consenti Nel corpo della richiesta solo se l'API lo richiede: chiunque usi la tua app potrebbe scrivere la chiave in qualsiasi cosa salvata da quell'API (un messaggio, una nota, un file pubblico) e poi rileggerla.