Hexabase(ヘキサベース)は企業においても安心して利用できるBaaS(Backend as a Service)を提供しています。多くのBaaSがそうであるように、主にフロントエンド開発者に利用してもらいたいと考えています。そこで現在、TypeScript SDKの開発が進められています。
この記事ではHexabase TypeScript SDKのインストールと、コメントの通知を受け取る方法を紹介します。
インストール
インストールは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
に対して処理を行います。
通知の種類
Hexabaseで提供されている通知は、現時点ではデータストアのアイテム(RDBMSでいう行相当)に対するコメントの通知のみです。また、コメントは新規作成のみ対応しています。
PostItemComment | Hexabase API ガイド
通知の受け取り方
データは保存されている前提です。
const project = await client.currentWorkspace!.project(projectId);
const datastore = await project.datastore(datastoreId);
const item = await datastore.item();
item.set('name', '名前');
const bol = await item.save();
この保存したデータに対するコメント追加を購読します。 data
は ItemSubscription という型になります。
item.subscribe('update', data => {
console.log(data);
});
ItemSubscriptionには comment
でコメントの内容や、 user
でコメントしたユーザーの情報が取得できます。
通知の止め方
通知を止めるには、 unsubscribe
を呼び出します。
item.unsubscribe();
まとめ
通知を使えば、擬似的にチャットのような機能が実現できます。アイテムに紐付くので、各アイテムがルームのような役割を果たします。
SlackやTeamsのように、チャット機能はさまざまなアプリケーションで求められます。Hexabaseを使えば、簡単に実装できますので、ぜひ試してください。