Backend og SDK

Tredjeparts-API'er (b77.http)

Kald ethvert HTTPS-API med dine hemmelige nøgler uden at afsløre dem.

b77.http.fetch kalder et HTTPS-API fra en tredjepart via builder77's servere. Dine API-nøgler gemmes under Indstillinger → Hemmelige nøgler og skrives i koden som {{secret:NAME}}: Serveren indsætter dem, så de aldrig når browseren.

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 kald bruger 1 integrationskredit. Kun https, timeout på 15 sekunder, svar på op til 1 MB. Hvis et API sender din nøgle retur, erstattes den med [secret], før din app ser svaret.

Regler for hver nøgle

Alle, der bruger din app, kan foretage kald med en hemmelig nøgle — uden at se den. Derfor virker hver nøgle kun på den måde, du tillader:

  • Tilladte hosts — de eneste servere, den nogensinde sendes til (f.eks. api.openai.com; *.example.com dækker underdomæner).
  • Tilladte metoder — GET og POST som standard.
  • Tilladte stier — valgfrie sti-præfikser som /v1/chat/. Tom betyder alle stier.
  • Hvor nøglen må placeres — som standard kun i en credential-header (Authorization, X-Api-Key, Api-Key, X-Goog-Api-Key og lignende). Query-parametre (efter navn, f.eks. key), URL-stien og anmodningens body er slået fra, indtil du slår dem til.

Et kald, der bryder en regel, afvises med status 403, før noget bliver sendt.

Nøgler i URL'en eller body

Foretræk API'er, der tager nøglen i en header. Nogle lægger den i adressen i stedet — tillad i så fald præcis det sted, og indsnævr 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!' },
});

Tillad kun I anmodningens body, hvis API'et kræver det: Så kan alle, der bruger din app, skrive nøglen ind i alt, hvad API'et gemmer (en besked, en note, en offentlig fil), og læse den igen.