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
に対して処理を行います。
データを作る
データはワークスペース → プロジェクト → データストア → データアイテムの順番にデータを取得します。
client.setWorkspace(workspaceId);
// 対象プロジェクト
const project = await client.currentWorkspace.project(projectId);
// 対象データストア
const datastore = await project.datastore(datastoreId);
// 新規レコード
const item = await datastore.item();
リアルタイム通知について
リアルタイム通知は、 item
に対して行います。この時、他のユーザーも通知を受け取れるように、保存されているデータを利用します。
await item.save();
そして、該当のデータアイテムに対して subscribe
を行います。 subscribe
は unsubscribe
で解除できます。購読するイベントとして update
を指定できます。現状は update
のみです。
item.subscribe('update', data => {
console.log(data);
});
data
は ItemSubscription
クラスとなっており、構造は以下のようになっています。
class ItemSubscription {
public id?: string;
public actionname?: string;
public comment?: string;
public createdAt?: Date;
public item?: Item;
public displayorder?: number;
public email?: string;
public fileIds?: string[];
public isFetchreplymail: boolean;
public isNotify: boolean;
public isChanged: boolean;
public isNotifyToSender: boolean;
public isSendItemUnread: boolean;
public postForEel: boolean;
public postMode: string;
public user: User;
}
通知を送る
通知を送る際には、コメント機能を使います。このコメントを保存すると、その内容が購読している他のユーザーに届く形です。
const comment = await item.comment();
comment.set('comment', 'コメント');
await comment.save();
コメントは文字列のみ送れるので、JSON.stringifyなどを使ってオブジェクトを文字列に変換して送ると良いでしょう。
まとめ
SDKを使うことで、Hexabaseのリアルタイム通知機能が簡単に利用できます。ぜひご活用ください。リアルタイム通知は、Webアプリケーションのコラボレーション機能や、チャット機能などで活用できます。
Hexabaseには他にもバイナリファイルのアップロードや認証などの機能があります。それらの機能も利用してください。