Skip to main content

Client SDK

Zmaj comes with client SDK that can be used to consume API in easy and type-safe way. This SDK is used in the admin panel, so everything that can be done within panel, can be done with SDK. SDK is written in Typescript, so there are autosuggestions and types for every API.

SDK works fully in browser environment. In NodeJS, it's currently not possible to upload/download files.

Usage​

Installing​

npm install @zmaj-js/client-sdk

Usage Examples​

Create client​

const sdk = new ZmajSdk({ url: "http://localhost:5000/api" })

Get Records​

const result = await sdk.collections("posts").getMany()
// will print all posts (default limit is 20)
console.log(result.data)

Create record​

const createdPost = await sdk.collections("posts").createOne({ data: { title: "hello" } })

Sign in​

const authUser = await sdk.auth.signIn({ email: "test@example.com", password: "password" })
// Returns special auth user object
console.log(authUser.email)

Download file​

const fileBlob = await sdk.files.download({ id: "file-uuid" })

Delete Webhook​

const deletedWebhook = await sdk.webhook.deleteById({ id: "hook-uuid" })

Multiple connections​

Zmaj stores access token in localStorage. If you want to have multiple different connections, you need to provide name to every instance. That name will be used to namespace saved data.

const sdk1 = new ZmajSdk({ url: "some-url", name: "sdk1" })
const sdk2 = new ZmajSdk({ url: "some-other-url", name: "sdk2" })