Backend og SDK

Tredjeparts-API-er (b77.http)

Kall et hvilket som helst HTTPS-API med dine hemmelige nøkler, uten å avsløre dem.

b77.http.fetch kaller et tredjeparts HTTPS-API fra builder77s servere. API-nøklene dine lagres under Innstillinger → Hemmeligheter og skrives i koden som {{secret:NAME}}: serveren fyller dem inn, så de når aldri nettleseren.

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

Hvert kall bruker 1 integrasjonskreditt. Kun https, tidsavbrudd etter 15 sekunder, svar på opptil 1 MB. Hvis et API sender nøkkelen din tilbake, erstattes den med [secret] før appen din ser svaret.

Regler for hver hemmelighet

Alle som bruker appen din, kan gjøre kall med en hemmelighet — uten å se den. Derfor virker hver hemmelighet bare slik du tillater:

  • Tillatte verter — de eneste serverne den noen gang sendes til (f.eks. api.openai.com; *.example.com dekker underdomener).
  • Tillatte metoder — GET og POST som standard.
  • Tillatte stier — valgfrie stiprefikser som /v1/chat/. Tomt betyr alle stier.
  • Hvor nøkkelen kan plasseres — som standard bare i en autentiseringsheader (Authorization, X-Api-Key, Api-Key, X-Goog-Api-Key og lignende). Spørringsparametere (etter navn, f.eks. key), URL-stien og forespørselens innhold er av til du slår dem på.

Et kall som bryter en regel, avvises med status 403 før noe blir sendt.

Nøkler i URL-en eller innholdet

Velg helst API-er som tar nøkkelen i en header. Noen legger den i adressen i stedet — tillat akkurat det stedet og avgrens stien:

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

Tillat bare I forespørselens innhold hvis API-et krever det: alle som bruker appen din, kan da skrive nøkkelen inn i alt det API-et lagrer (en melding, et notat, en offentlig fil) og lese den tilbake.