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引数に暗号化パスワードを指定してください。 省略した場合は暗号化はされません。