3. 初期化処理の実装

3.1. NbService の生成

BaaS API を呼び出すには、最初に NbService クラスのインスタンスを取得する必要があります。

以下に初期化コードの例を示します。

// NbService の生成
var service = NbService.GetInstance();
// テナントID
service.TenantId = ".....";
// アプリケーションID
service.AppId = ".....";
// アプリケーションキー
service.AppKey = ".....";
// エンドポイントURI
service.EndpointUrl = "https://api.nebula.example.com/api/";

NbService.GetInstance() を使用してインスタンスを取得します。 GetInstance() は常に同一のインスタンスを返却します(後述するマルチテナントモード時は除く)。

NbService のプロパティに以下のものを設定します。

  • テナントID
  • アプリケーションID
  • アプリケーションキー
  • エンドポイントURI

テナントID、アプリケーションID・キーについては、デベロッパコンソールで作成しておく必要が あります。手順については、チュートリアル(.NET)に記載してありますので、そちらをご参照ください。

エンドポイントURIは、APIサーバのベースURIです。これはシステム毎に異なりますので、サーバ運用者に 確認してください。通常は "https://ホスト名/api/" のような形式になります。

3.2. マルチテナント/マルチアプリ/マルチユーザ

1つのクライアントアプリから複数テナント・アプリに同時アクセスしたい場合は、 その数だけ NbService インスタンスを生成する必要があります。

マルチテナントモードでは NbService.GetInstance() は毎回異なるインスタンスを生成します。 テナントIDやアプリIDは、NbService 毎に設定します。以下に例を示します。

// マルチテナントモードを有効にする。
NbService.EnableMultiTenant(true);

// NbService の生成(1)
var service1 = NbService.GetInstance();
service1.TenantId = ...

// NbService の生成(2)
var service2 = NbService.GetInstance();
service2.TenantId = ...

ユーザログインのコンテキストは NbService 毎に生成されますので、 同一テナント・アプリであっても、複数ユーザで同時ログインしたい場合はマルチテナントモードにして NbService を複数生成する必要があります。

また、API には、引数末尾に NbService を渡すようになっているものがあります。 マルチテナント/マルチアプリ/マルチユーザアクセスをする場合は、これらの API にはNbService インスタンスを必ず渡さなければなりません。 マルチテナントモードでこれらの引数を省略した場合は、InvalidOperationException 例外が発生します。

3.3. オフライン機能の有効化

オフライン機能を使用する場合は、つづけてオフライン機能の有効化を行って下さい。

// オフライン機能の有効化
NbOfflineService.EnableOfflineService(service, "Passw0rD");

EnableOfflineService() を呼び出して有効化します。 第1引数に NbService を指定して下さい。

オフラインデータベースを暗号化する場合は、第2引数に暗号化パスワードを指定してください。 省略した場合は暗号化はされません。