TypeScript SDK
A @basedb/sdk csomag TypeScriptből vagy JavaScriptből hívja meg az
API RESTet: típusos sorok, minden oldal, fájlok,
elutasítások a kódjukkal. Semmilyen függőség: a szabványos fetch, Node 18 és újabb, Deno,
Bun vagy egy böngésző alatt.
npm install @basedb/sdkA táblái típusai
Szekció neve “A táblái típusai”Egy parancs beolvassa az adatbázisai leírását, és beírja a típusaikat a programja egy fájljába:
BASEDB_URL=https://basedb.exemple.fr BASEDB_TOKEN=bdb_… npx @basedb/sdk types --out src/basedb.tsMinden adatbázis, amelyet a token megnyit – vagy azok, amelyeket a --base nevez meg, akár
többször is –, és minden táblához három forma: a sor, ahogyan a basedb olvassa, ahogyan
létrehozzák, ahogyan módosítják. Egy egyszeres választás az értékei uniójává válik;
egy mező, amelyet a basedb számít – képlet, kikeresés, aggregálás, darabszám, automatikus
szám – csak olvasható, nem írható; egy alapértelmezett érték nélküli kötelező mező
létrehozáskor megkövetelt. Indítsa újra a parancsot, amikor a táblák megváltoznak.
Olvasás és írás
Szekció neve “Olvasás és írás”import { Basedb, BasedbError, filter } from '@basedb/sdk'import type { Schema } from './basedb.js'
const db = new Basedb<Schema>({ url: 'https://basedb.exemple.fr', token: process.env.BASEDB_TOKEN! })const opportunites = db.base('b_t4z56fq_ventes').table('opportunites')
const o = await opportunites.create({ titre: 'Audit', montant: 12500, statut: 'nouveau' })await opportunites.update(o._id, { statut: 'gagne' })
for await (const ligne of opportunites.all({ filter: filter`statut eq ${'gagne'} and montant gte ${10000}`, sort: '-montant',})) { console.log(ligne.titre, ligne.montant)}Egy nem létező tábla, mező vagy választás típushiba, még mielőtt a program elindulna.
| Metódus | Szerep |
|---|---|
list(options) | egy oldal, és a next a következőhöz |
all(options) | egy szűrő összes sora, oldalanként, amint olvassák őket |
first(options), count(filtre) | az első sor, a sorok száma |
get(id) | egy sor |
create(valeurs), createMany(lignes) | sor hozzáadása; több sor, mind vagy semelyik |
update(id, valeurs) | mezők módosítása; egy hiányzó mező változatlan marad, a null kiüríti |
aggregate({ aggregates, filter, group }) | összegek, átlagok, darabszámok egy szűrő összes során |
comments(id).list(), .add(texte) | egy sor megjegyzései; egy @mention értesít |
upload(champ, octets, { name, type }) | fájl letétele, amelyre a sor ezután az id-jével hivatkozik |
db.undo(ligne) | annak az írásnak a visszavonása, amely ezt a sort létrehozta – elutasítva, ha azóta megváltozott |
- A
filterminden beillesztett értéket értékként ír be: egy felhasználó által beírt szöveg szöveg marad, sosem a szűrő egy darabja. - A számok tizedes szövegként olvashatók (
"12500.0000000000"), hogy semelyik számjegy se vesszen el; számként vagy szövegként írhatók. - Egy kapcsolat
{ id, display }alakban olvasható, és a kapcsolt sor_id-jével írható; alinks: 'id'csak az_id-t olvassa. - Egy elutasítás egy
BasedbError: acode-ja – stabil, egy okonként, minden nyelven ugyanaz –,status,detailsésrequestId. Egy lassításra kérő válasz (429) a basedb által jelzett várakozás után újrapróbálkozik.
Környezetek
Szekció neve “Környezetek”Egy adatbázis, amelynek több környezete van — éles,
teszt… —, a neveit és a típusait környezetről környezetre megtartja. Az egész adatbázisra létrehozott
tokennel az environment() egy környezetet céloz meg, ugyanazzal a kóddal, amely máshol fut:
const recette = db.environment('recette')await recette.base('b_t4z56fq_ventes').table('opportunites').first()A konstruktor environment opciója ugyanezt teszi az egész klienssel. Az SDK elküldi az
X-Basedb-Environment fejlécet; nélküle minden adatbázisnév a saját környezetét jelöli
(a b_t4z56fq_ventes az éles).
A token
Szekció neve “A token”Egy integrációs token a felületen jön létre: az adatbázis ⋯ menüje → API és
ügynökök → API- és MCP-tokenek…. Egy adatbázist nyit meg — az összes környezetével, vagy
csak egyet —, olvassa a sorait, írja is, ha íráshoz jött létre, sosincs több joga, mint annak a
személynek, aki létrehozta, és csak akkor töröl, ha erre jött létre („Olvasás, írás és
törlés”): egyébként a delete() meghívása elutasításra kerül.
A basedb az Eodia, egy MI-natív szoftverstúdió szabad szoftvere.