3. 初期化処理の実装

3.1. NbService の生成

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

NbService の生成には NbServiceBuilder のサブクラスを使用します。

3.1.1. Android の場合 (オフライン機能なし)

Android の場合は、NbServiceBuilder を継承した NbAndroidServiceBuilder を使用して初期化を行います。

なお、初期化処理は、Application クラスの onCreate() 内で行うことを推奨します。 生成した NbService は、シングルトンとして Application クラス内に保持するようにします。

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

// テナントID
final String TENANT_ID = ".....";
// アプリケーションID
final String APP_ID = ".....";
// アプリケーションキー
final String APP_KEY = ".....";
// エンドポイントURI
final String ENDPOINT_URI = "https://api.nebula.example.com/api/";

// NbService の生成
NbService nbService =
        new NbAndroidServiceBuilder(this)
        .tenantId(TENANT_ID)
        .appid(APP_ID)
        .appKey(APP_KEY)
        .endpointUri(ENDPOINT_URI)
        .build();

NbAndroidServiceBuilder を使用して NbService を生成します。 NbAndroidServiceBuilder のコンストラクタには Context を指定します。

また、続けて以下のパラメータを指定します。

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

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

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

3.1.2. Android の場合 (オフライン機能あり)

オフライン機能を使用する場合は、NbService の生成手順が少し変わります。

// 暗号化キー
final String ENCRYPT_KEY = ".....";

// NbService の生成
NbSerivce nbService =
        new NbAndroidServiceBuilder(this)
        .tenantId(TENANT_ID)
        .appid(APP_ID)
        .appKey(APP_KEY)
        .endpointUri(ENDPOINT_URI)
        .useOfflineMode(ENCRYPT_KEY)
        .build();

オフライン機能を使用する場合は、useOfflineMode() を呼び出します。 暗号化キーは、オフライン機能を使用する際のローカルデータベースの暗号化キーです。任意の文字列を 指定できます (空文字は不可です)

3.1.3. Pure Java (非Android)の場合

Pure Java の場合は、NbServiceBuilder を継承した NbGenericServiceBuilder を使用して初期化を行います。

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

// テナントID
final String TENANT_ID = ".....";
// アプリケーションID
final String APP_ID = ".....";
// アプリケーションキー
final String APP_KEY = ".....";
// エンドポイントURI
final String ENDPOINT_URI = "https://api.nebula.example.com/api/";

// NbService の生成
NbSerivce nbService =
        new NbGenericServiceBuilder()
        .tenantId(TENANT_ID)
        .appid(APP_ID)
        .appKey(APP_KEY)
        .endpointUri(ENDPOINT_URI)
        .build();

NbGenericServiceBuilder には以下のパラメータを指定します。

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

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

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

3.1.4. マルチテナントモード (Pure Java のみ)

複数のテナントに同時アクセスしたい場合は、「マルチテナントモード」を有効化します。 マルチテナントモードは Pure Java の場合のみ利用可能です(Androidでは利用不可)。

// マルチテナントモードを有効化
NbService.enableMultiTenant(true);

// NbService を必要な数だけ生成
NbService nbService1 =
        new NbGenericServiceBuilder()
        .tenantId(TENANT_ID)
        .appId(APP_ID)
        .appKey(APP_KEY)
        .endpointUri(ENDPOINT_URI)
        .build();

NbService nbService2 =
        new NbGenericServiceBuilder()
        .tenantId(TENANT_ID2)
        .appId(APP_ID2)
        .appKey(APP_KEY2)
        .endpointUri(ENDPOINT_URI)
        .build();

マルチテナントモードを有効化すると、NbService を複数作成することができ、 それぞれに対して個別に API 呼び出しを行うことができます。

3.2. 動作モードの設定

デフォルトの状態では、SDK 側ではログを一切出力しないモード(PRODUCTION)となっています。

開発・デバッグ時には、動作モードをデバッグモード(DEBUG)にして、動作ログを出力 することを推奨します。動作モードの設定は以下のように行います。

NbSetting.setOperationMode(NbOperationMode.DEBUG);

3.3. 自己署名証明書を使用する場合の設定

警告

本設定は、セキュリティリスクが高くなるため実運用時の利用は推奨できません。 正規の証明書を使用するようにしてください。

サーバ側で HTTPS 自己署名証明書を使用している場合、SSL証明書の検証でエラーとなります。 これをスキップするには以下のようにします。 この処理は、NbService の生成前に行わなければなりません。

NbHttpClient.getInstance().setAllowSelfSignedCertificate(true);

3.4. HTTP/2対応

本SDKは、サーバがHTTP/2(ALPN)に対応している場合、HTTP/2を使用して通信を行います。

BaaSサーバのHTTP/2設定は、 HTTP/2使用手順 を参照して下さい。