Backend și SDK

API-uri terțe (b77.http)

Apelează orice API HTTPS cu cheile tale secrete, fără să le expui.

b77.http.fetch apelează un API HTTPS terț de pe serverele builder77. Cheile tale API sunt păstrate în Setări → Secrete și scrise în cod ca {{secret:NAME}}: serverul le completează, așa că nu ajung niciodată în 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) }

Fiecare apel folosește 1 credit de integrare. Doar https, timp limită de 15 secunde, răspunsuri de până la 1 MB. Dacă un API îți trimite cheia înapoi, aceasta este înlocuită cu [secret] înainte ca aplicația ta să vadă răspunsul.

Reguli pentru fiecare secret

Oricine îți folosește aplicația poate face apeluri cu un secret — fără să-l vadă. De aceea, fiecare secret funcționează doar așa cum permiți:

  • Host-uri permise — singurele servere către care este trimis vreodată (de ex. api.openai.com; *.example.com acoperă subdomeniile).
  • Metode permise — implicit GET și POST.
  • Căi permise — prefixe de cale opționale, cum ar fi /v1/chat/. Gol înseamnă orice cale.
  • Unde poate fi pusă cheia — implicit doar într-un antet de autentificare (Authorization, X-Api-Key, Api-Key, X-Goog-Api-Key și altele similare). Parametrii de interogare (după nume, de ex. key), calea URL și corpul cererii sunt dezactivate până le activezi.

Un apel care încalcă o regulă este refuzat cu statusul 403 înainte să fie trimis ceva.

Chei în URL sau în corpul cererii

Preferă API-urile care primesc cheia într-un antet. Unele o pun în schimb în adresă — permite exact acel loc și restrânge calea:

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

Permite În corpul cererii doar dacă API-ul o cere: oricine îți folosește aplicația ar putea atunci să scrie cheia în orice salvează acel API (un mesaj, o notiță, un fișier public) și apoi s-o citească.