LoginSignup
1

Hexabase TypeScript SDKを使ってワークスペースをCRUD操作する

Last updated at Posted at 2023-04-25

Hexabase(ヘキサベース)は企業においても安心して利用できるBaaS(Backend as a Service)を提供しています。多くのBaaSがそうであるように、主にフロントエンド開発者に利用してもらいたいと考えています。そこで現在、TypeScript SDKの開発が進められています。

この記事ではHexabase TypeScript SDKのインストールと、Hexabaseの基盤となるワークスペースを操作する方法を解説します。

インストール

インストールはnpmやyarnを使って行います。

# npmの場合
npm install @hexabase/hexabase-js

# yarnの場合
yarn add @hexabase/hexabase-js

インポート

インポートすると、 HexabaseClient というオブジェクトが取得できます。

import { HexabaseClient } from "@hexabase/hexabase-js";

初期化

HexabaseClientを初期化します。

const client = new HexabaseClient();

認証

Hexabaseでは業務利用を想定しているため、利用する際に認証情報が必須になります。最初はメールアドレスとパスワードで認証し、その後はトークンを使ってGraphQLにアクセスします。 client を使って処理します。

初回の認証は次のようになります。emailとパスワード、またはトークンが必須です。

await client.login({email, password, token});

後はこの client に対して処理を行います。

現在のワークスペースを取得する

ログインした時点でHexabaseClientのcurrentWorkspaceが現在のワークスペースオブジェクトになっています。

client.currentWorkspace

ワークスペースを切り替える場合には、 workspace メソッドを使います。

client.workspace(newWorkspaceId);

すべてのワークスペースを取得する

ログインしているユーザーに紐付いているすべてのワークスペースを取得する際には workspaces メソッドを使います。

const workspaces = await client.workspaces();

他にも現在のワークスペースとその他のワークスペースを取得する workspacesWithCurrent もあります。

const { workspace, workspaces } = await client.workspacesWithCurrent();

ワークスペースを切り替える

作業するワークスペースを変更する場合には setWorkspace メソッドを使います。

await client.setWorkspace(workspaceId);

ワークスペースを作成する

ワークスペースを作成する場合には save メソッドを使います。

const workspace = client.workspace();
workspace.name = 'new Workspace';
await workspace.save();

ワークスペースをアーカイブする

ワークスペースは削除ではなく、アーカイブを行います。

await workspace.archive();

まとめ

ワークスペースはHexabaseを操作する上での基盤になります。ここからプロジェクト、データストアと階層構造になっています。オブジェクトを使っている限りは意識することはないと思いますが、覚えておくとHexabaseの操作が楽になるはずです。

Hexabase TypeScript SDKを使えば、VueやReactなどと連携したWebアプリを素早く開発できるようになります。2023年04月現在絶賛開発を進めていますので、ぜひ試していただいてフィードバックいただければ嬉しいです!

hexabase/hexabase-js

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1