Julkinen API + SDK:t + embed-widget
Neljä ensiluokkaista SDK:ta versionoidun REST-API:n päällä. Kursorisivutus, Idempotency-Key-otsakkeet, HMAC-webhook-allekirjoitus, async-iteraattori-apufunktiot, tyypitetyt virheet. Kehittäjäkokemuksen palaset, joiden pitäisi olla — ei jälkiajatuksina.
Neljä SDK:ta
@nexbasira/node
Palvelinpuoli. Tyypitetty OpenAPI-skeemaa vasten; async-iteraattorit sivutetuille listoille; constructEvent(body, sig, secret) webhook-varmennukseen. Nolla ajonaikaista riippuvuutta globaalin fetchin lisäksi.
nexbasira (PyPI)
Palvelinpuoli. Skeemasta generoidut Pydantic v2 -mallit. Sync- ja async-clientit jakavat saman pinnan; webhook-varmennus sijaitsee kohdassa WebhookSigner.verify(body, sig, secret).
@nexbasira/react
Hookit ja komponentit operaattoripinnalle. <CertivisioSessionView /> renderöi istunnonaikaisen käyttöliittymän brändäyksellä, todisteilla ja chatilla. Pudota olemassa olevaan React-sovellukseesi — ei portal-uudelleenohjausta.
Iframe-widget
<script src=".../nb-embed.js"> + div — matalimman kitkan integraatio. Ops-tiimeille, jotka ajavat operaattorikäyttöliittymän ei-React-stackista. Brändäys periytyy upottavalta sivulta postMessagen kautta.
Rakennettu OpenAPI-spesifikaation päälle
Node- ja Python-SDK:t generoidaan samasta suodatetusta OpenAPI 3.1 -skeemasta, jonka julkaisemme osoitteessa app.nexbasira.com/api/public-schema/ — joten jos haluat ohittaa SDK:n ja generoida oman tyypitetyn clientisi Go:lla tai Rustilla, voit:
# Node typed client
npx openapi-typescript https://app.nexbasira.com/api/public-schema/ -o src/nb-types.ts
# Python typed models
datamodel-codegen \
--url https://app.nexbasira.com/api/public-schema/ \
--input-file-type openapi \
--output-model-type pydantic_v2.BaseModel \
--output cvp_models.py Käsin kirjoitettu ergonominen pinta (tyypitetyt virheet, async-iteraattorit, webhook-varmennus) menee näiden generoitujen tyyppien päälle. Et valitse "nopean tyypitetyn clientin" ja "mukavan DX:n" välillä — molemmat toimitetaan.
REST-käytännöt, tehty tylsiksi tarkoituksella
| Käytäntö | Miksi |
|---|---|
| Kursorisivutus | Vakaa samanaikaisten kirjoitusten alla. next_cursor vastauksessa; välitä se takaisin muodossa ?cursor=…. |
Idempotency-Key-otsake | Lähetä UUID; yritä uudelleen aikakatkaisussa; palvelin palauttaa alkuperäisen vastauksen kummassakin tapauksessa. |
| HMAC-SHA256-webhookit | NB-Signature: t=…,v1=…. SDK:t toimittavat yhden rivin varmennuksen; 5 min toistoikkuna. |
| Versionoitu URL-etuliite | /api/v1/public/. Rikkovat muutokset siirtyvät kohtaan /v2/ 12 kuukauden päällekkäisyydellä. |
| Scope-rajatut tunnukset | Jokainen tunnus kantaa eksplisiittiset scopet (sessions:write, evidence:read, …). Kierrätä menettämättä tenanttia. |
| Tyypitetty virhekuori | Sama muoto joka endpointissa. code, detail, retry_after_seconds kun relevantti. |
Vakauslupaus
Additiiviset muutokset — uudet valinnaiset kentät, uudet endpointit, uudet webhook-tapahtumatyypit — toimitetaan paikallaan; SDK:t käsittelevät tuntemattomat kentät eteenpäin yhteensopivina. Rikkovat muutokset siirtyvät uuteen URL-etuliitteeseen ja ovat päällekkäin edellisen version kanssa vähintään 12 kuukautta. Et herää vihreästä-punaiseen-migraatioon tiistaiaamuna.
Aloita pika-aloituksesta
Luo istunto, luo kenttäkutsu, varmenna webhook — alle 5 minuutissa. Kopioi-liitä curl + Node + Python samalla sivulla.