Hexabase(ヘキサベース)は企業向けのBaaS(Backend as a Service)を提供しています。認証やデータストア、ファイルストレージ、リアルタイム通知などの機能があり、企業向けのシステム開発に必要な機能をまるっと提供しています。
APIはREST APIとGraphQLを提供しています。そのAPIをラップしたSDKも開発を進めています。SDKは現在、TypeScriptとDart向けに開発しています。Dart向けのSDKは、もちろんFlutterでも利用できます。
この記事ではFlutter SDKについてインストールと、データストアのアイテムに対するコメントのCRUD操作について解説します。
パッケージとソースコード
パッケージはpub.devで公開しています。
ソースコードはGitHubにて公開しています。ライセンスはMIT Licenseです。
hexabase/hexabase-dart: Hexabase SDK for Dart & Flutter
インストール
インストールは dart pub get
で行えます。
dart pub get hexabase
インポート
SDKをインポートします。
import 'package:hexabase/hexabase.dart';
初期化
まずインスタンスを作成します。
var client = Hexabase();
別なファイルで再度インポートした場合には、以下でインスタンスを取得してください。
var client = Hexabase.instance;
アイテムの作成
データストア(クラウドデータベース)の行相当のデータがアイテムです。以下のようにして、新しいアイテムを作成します。
await client.setWorkspace('YOUR_WORKSPACE_ID');
var project = await client.currentWorkspace.project(id: 'YOUR_PROJECT_ID');
var datastore = await project.datastore(id: 'YOUR_DATABASE_ID');
// アイテムを作成
var item = await datastore.item();
// 保存しておく
await item.save();
コメントの作成
新しいコメントは、 item.history()
で作成します。 set
で値(コメント本文)を設定し、 save
で保存します。
var history = item.history();
history.set('comment', 'test');
await history.save();
コメントの取得
コメントを取得する際には、 item.histories()
を使います。 item.save()
の時点で1つ目のコメントが保存されているので、以下の場合返ってくるのは2つのコメントです。
var histories = await item.histories();
expect(histories.length, 2);
コメントの更新
コメントの更新は保存と同じで、 save
メソッドを使います。
history.set('comment', 'test 2');
await history.save();
コメントの削除
コメントの削除は、 delete
メソッドを使います。
await history.delete();
まとめ
コメントはアイテムに紐付いて保存されており、その結果をSignalR使って受け取ることができます。リアルタイム通知やコラボレーション機能を使うのに利用できますので、ぜひ活用してください。
HexabaseのFlutter SDKを使って、堅牢なWebアプリケーションを開発してください。