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はクラウドデータベースを提供しており、データベース同士のリレーションも可能です。データベース参照はフィールド型の一つで、フィールドに対して別なテーブルのデータを紐付ける型になります。
1行のデータに対して1つのデータを紐付ける形なので、マスターデータの参照などに利用できます(顧客テーブルに対する都道府県マスターなど)。
データを作る
データはワークスペース → プロジェクト → データストア → データアイテムの順番にデータを取得します。
await client.setWorkspace(workspaceId);
// 対象プロジェクト
const project = await client.currentWorkspace.project(projectId);
// 対象データストア
const datastore = await project.datastore(datastoreId);
// 新規レコード
const item = await datastore.item();
保存について
保存時には、マスターデータ masterItem
を set
メソッドで特定のフィールド(今回は test_dslookup
)に対して紐付けます。
最後に save
を実行すれば、関連データとして保存されます。
// マスターデータを取得
const master = await project
.datastore(DATASTORE_TEST_MASTER1);
const [masterItem] = await master.items();
// 値をセット
item.set('test_text_unique', name());
item.set('test_number', 100);
item.set('test_dslookup', masterItem);
// 保存
await item.save();
更新について
更新は先ほどと同じように、新しい紐付けるデータを指定して保存します。保存は save
メソッドで変わりません。
const [masterItem, masterItem2] = await master.items();
// 別なデータをセット
item.set('test_dslookup', masterItem2);
// 更新
await item.save();
紐付けの解除
紐付けを解除する場合には、 null
を指定して保存してください。
// 紐付け解除
item.set('test_dslookup', null);
// 保存
await item.save();
この場合、返ってくるデータ( get
メソッドで取得できます)も null
になります。
const obj = item.get('test_dslookup');
// obj === null
まとめ
SDKを使うことで、データベース参照は簡単に操作できます。リレーションを使えば、データベースを正規化し、管理が簡単になるでしょう。
Hexabaseには他にもバイナリファイルのアップロードや認証などの機能があります。それらの機能も利用してください。