5.5. ユーザコードからのモバイルバックエンド基盤の利用

5.5.1. モバイルバックエンド基盤の呼び出し

ユーザコードからモバイルバックエンド基盤の機能を呼び出すことができます。

ハンドラの第二引数 context の nebula() メソッドを呼び出すと、 Java SDK の 初期化済み NbService インスタンスが取得できます。 これを使用してモバイルバックエンド基盤を呼び出します。

以下、例を示します。この例は単純にオブジェクトストレージを全件検索するものです。

public void queryObjectStorage(String event, final Context context) {
    NbService nebula = context.nebula();

    NbObjectBucket bucket = nebula.objectBucketManager().getBucket("bucket1");

    bucket.query(new NbQuery(), new NbListCallback<NbObject>() {
        @Override
        public void onSuccess(List<NbObject> objects) {
            // 成功時の処理
            ...
        }

        @Override
        public void onFailure(int statusCode) {
            // 失敗時の処理
            ...
        }
    });
}

注意

context.nebula() に設定されるアプリケーションキーは、 API Gateway クライアントから指定される X-Application-Key の値にかかわらず (マスターキーではない)通常のアプリケーションキーとなります。 マスターキーを使用したい場合は、以下「マスターキーの強制使用」を参照してください。

5.5.2. ユーザ認証・ACL

上記の Nebula プロパティには、カスタム API 呼び出し時のユーザ情報(セッショントークン)が格納されています。

このため、上記のコード実行時にはカスタム API 呼び出しユーザと同じアクセス制御が適用されます。

認証の詳細については 認証・セキュリティ を参照してください。

5.5.3. マスターキーの強制使用

カスタム API 呼び出し時のユーザ情報を使わず、強制的にマスターキーを使用するように実装することもできます。 これを行う場合は、API呼び出し前に以下のようにします。

context.nebula().setAppKey(context.clientContext().nebula().masterKey());

context.clientContext().nebula().masterKey() にはマスターキーの情報が入っています。 NbService.setAppKey() を呼び出すことでキーを強制的にマスターキーに変更して実行します。