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を使ってデータレポートを取得する

Last updated at Posted at 2023-05-17

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

この記事ではHexabase TypeScript SDKのインストールと、データレポートを取得する方法を解説します。

データレポートとは?

データレポートは、データベースの特定のアイテムやフィールドだけを表示したり、連結・集計したりできる機能です。いわばRDBMSで言うビューに相当する機能です。

データレポートは管理画面で作成します。

image.png

インストール

インストールは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

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

client.setWorkspace(newWorkspaceId);

そのワークスペースに紐付いているプロジェクトを取得します。

const project = await client.currentWorkspace.projects(projectId);

データレポートを取得する

まず作成されているデータレポートを取得します。

const reports = await project!.reports();

レポートの内容を取得する

そして各レポートオブジェクトに対して data メソッドで実レポートのデータが取得できます。

const data = await report.data();

data はレポートの内容がJSONになっています。たとえば以下のようになります。

[
  {
    createdAt: 2024-04-07T11:24:27.000Z,
    updatedAt: 2024-06-22T05:43:10.000Z,
    items: [ [Item] ],
    test_text: 'test',
    test_number: 100,
    test_select: 'SELECT_2'
  },
  {
    createdAt: 2024-04-07T11:24:27.000Z,
    updatedAt: 2024-06-22T05:42:09.000Z,
    items: [ [Item] ],
    test_text: 'テストテキスト',
    test_number: 400,
    test_select: 'SELECT_1'
  },
  {
    createdAt: 2024-04-07T11:24:27.000Z,
    updatedAt: 2024-06-22T05:44:11.000Z,
    items: [ [Item] ],
    test_text: 'test',
    test_number: 250,
    test_select: 'SELECT_1'
  }
]

結果の型は以下のようになっています。

interface GetReportDataResponse {
  createdAt: Date;
  updatedAt: Date;
  items: Item[];
  [key: string]: any;
}[]

まとめ

業務システムにおいてレポーティングはよく使われる機能です。各テーブルからデータをダウンロードして自分でレポートを作成するのは手間です。Hexabaseであれば、管理画面上でレポートに必要な情報や条件を設定しておけます。

JSONでダウンロードできれば、後はCSVなどへも変換できるでしょう。ぜひ業務システム開発に役立ててください。

株式会社 Hexabaseー法人向けクラウドシステム『Hexabase』ー

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?