Backend i SDK

API de tercers (b77.http)

Crida qualsevol API HTTPS amb les teves claus secretes, sense exposar-les.

b77.http.fetch crida una API HTTPS de tercers des dels servidors de builder77. Les teves claus d'API es desen a Configuració → Claus secretes i al codi s'escriuen com a {{secret:NAME}}: el servidor les insereix, de manera que mai no arriben al navegador.

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

Cada crida fa servir 1 crèdit d'integració. Només https, temps d'espera de 15 segons, respostes de fins a 1 MB. Si una API retorna la teva clau a la resposta, se substitueix per [secret] abans que la teva app vegi la resposta.

Regles per a cada clau secreta

Qualsevol persona que faci servir la teva app pot fer crides amb una clau secreta — sense veure-la. Per això cada clau només funciona tal com ho permets:

  • Hosts permesos — els únics servidors als quals s'envia (p. ex. api.openai.com; *.example.com inclou els subdominis).
  • Mètodes permesos — GET i POST per defecte.
  • Camins permesos — prefixos de camí opcionals, com /v1/chat/. Buit vol dir qualsevol camí.
  • On es pot posar la clau — per defecte només en una capçalera de credencials (Authorization, X-Api-Key, Api-Key, X-Goog-Api-Key i similars). Els paràmetres de consulta (pel nom, p. ex. key), el camí de l'URL i el cos de la petició estan desactivats fins que els activis.

Una crida que incompleix una regla es rebutja amb l'estat 403 abans d'enviar res.

Claus a l'URL o al cos

Tria API que acceptin la clau en una capçalera. Algunes la demanen a l'adreça — permet exactament aquest lloc i restringeix el camí:

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

Activa Al cos de la petició només si l'API ho exigeix: qualsevol persona que faci servir la teva app podria escriure la clau en qualsevol cosa que desi aquesta API (un missatge, una nota, un fitxer públic) i tornar-la a llegir.