API tretích strán (b77.http)
Volaj ľubovoľné HTTPS API so svojimi tajnými kľúčmi bez toho, aby si ich prezradil.
b77.http.fetch volá HTTPS API tretej strany zo serverov builder77. Tvoje API kľúče sú uložené v Nastavenia → Tajné kľúče a v kóde sa zapisujú ako {{secret:NAME}}: server ich doplní sám, takže sa nikdy nedostanú do prehliadača.
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) }Každé volanie minie 1 kredit za integrácie. Len https, časový limit 15 sekúnd, odpovede do 1 MB. Ak API pošle tvoj kľúč späť, nahradí sa [secret] skôr, než odpoveď uvidí tvoja aplikácia.
Pravidlá pre každý tajný kľúč
Ktokoľvek, kto používa tvoju aplikáciu, môže s tajným kľúčom volať API — bez toho, aby ho videl. Preto každý kľúč funguje len tak, ako povolíš:
- Povolené domény — jediné servery, na ktoré sa kedy pošle (napr.
api.openai.com;*.example.compokrýva aj subdomény). - Povolené metódy — predvolene GET a POST.
- Povolené cesty — voliteľné prefixy ciest, napríklad
/v1/chat/. Prázdne znamená akúkoľvek cestu. - Kam možno kľúč vložiť — predvolene len do autentifikačnej hlavičky (Authorization, X-Api-Key, Api-Key, X-Goog-Api-Key a podobne). Parametre dopytu (podľa názvu, napr.
key), cesta URL a telo požiadavky sú vypnuté, kým ich nezapneš.
Volanie, ktoré porušuje pravidlo, sa odmietne so stavom 403 skôr, než sa čokoľvek odošle.
Kľúče v URL alebo v tele
Uprednostni API, ktoré berú kľúč v hlavičke. Niektoré ho namiesto toho majú v adrese — povoľ presne to miesto a zúž cestu:
// 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!' },
});V tele požiadavky povoľ len vtedy, keď to API vyžaduje: ktokoľvek, kto používa tvoju aplikáciu, by potom mohol kľúč zapísať do čohokoľvek, čo toto API ukladá (napríklad do správy, poznámky alebo verejného súboru), a znova si ho prečítať.