3. 初期化処理の実装

3.1. NbService の生成

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

NbService の生成には NbService::CreateService() を使用します。

using namespace necbaas;

std::shared_ptr<NbService> service =
                    NbService::CreateService("http://testurl.co.jp:8080",
                                             "testTenandId",
                                             "testAppId",
                                             "testAppKey");

NbServiceはNebulaサーバとの通信に必要なリソースを管理します。 このため各種インスタンスの生成の前に作成します。 以下の引数を設定します。

  • テナントID
  • アプリケーションID
  • アプリケーションキー
  • エンドポイントURI
  • Proxy設定(option)

テナントID、アプリケーションID・キーについては、デベロッパコンソールで作成した値を設定します。 エンドポイントURIは、APIサーバのベースURIです。これはシステム毎に異なりますので、サーバ運用者に確認してください。通常は "https://ホスト名/api/" のような形式になります。

注釈

NbServiceは、多くのインスタンスの引数として共通に使用されます。 このためアプリケーション全体で参照できるクラスに配置することを推奨します。

3.1.1. マルチテナント

複数のテナントにアクセスしたい場合は、複数のNbServiceを作成します。 NbServiceはインスタンス毎に独立しており、指定のテナントへのアクセスを行うことができます。

// テナント1アクセス用のインスタンス
std::shared_ptr<NbService> service1 =
                      NbService::CreateService("http://endpoint1.co.jp:8080",
                                               "tenantId_1",
                                               "applicationId_1",
                                               "applicationKey_1");
// テナント2アクセス用のインスタンス
std::shared_ptr<NbService> service2 =
                      NbService::CreateService("http://endpoint2.co.jp:8081",
                                               "tenantId_2",
                                               "applicationId_2",
                                               "applicationKey_2");

3.2. ログの設定

ログは以下の3種別があり、NbLoggerのAPIを使用してそれぞれ出力有無を変更することができます。 全てのログは標準出力に出力されます。

デバッグビルドでビルドした場合、初期状態でログをすべて出力します。 リリースモードの場合はログを出力しません。

NbLogger::SetDebugLogEnabled(true);  // デバッグログ (SDK内のデバッグ用ログ)
NbLogger::SetRestLogEnabled(true);   // RESTログ (サーバとの通信ログ)
NbLogger::SetErrorLogEnabled(true);  // Errorログ (処理失敗などのエラーに関するログ)