1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Hexabase TypeScript SDKの使い方(データベース参照の操作)

Posted at

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();

保存について

保存時には、マスターデータ masterItemset メソッドで特定のフィールド(今回は 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には他にもバイナリファイルのアップロードや認証などの機能があります。それらの機能も利用してください。

Hexabase | 新規事業向け開発・競争領域でのDX実現をサポート

1
1
0

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
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?