モバイルApiのコール

Oracle Mobile Hubのバックエンドとは、アプリケーションで使用できるカスタムapi、ストレージ収集、その他のリソースを論理的にグループ化したものです。バックエンドは、これらのリソースにアクセスするためのセキュリティ・コンテキストも提供します。

IOSアプリケーションでバックエンドを使用するための一般的な手順を次に示します。

  1. クライアントSDKをアプリケーションに追加します。

  2. OMC.plistに、バックエンドの環境および認証の詳細を入力します。

  3. 構成情報をロードするためのSDKコールをアプリケーションに追加します。

  4. 認証を処理するためのSDKコールをアプリケーションに追加します。

  5. 使用する他のSDKコールを追加します。

バックエンドの構成のロード

IOSクライアントSDKを使用してOracle Mobile Hub APIをコールして正常に完了するには、モバイル・バックエンドの構成をアプリケーションのOMC.plistファイルからロードしておく必要があります。このためには、OMCMobileBackendクラスを使用します。

/**
 * Returns the mobile backend that is configured in OMC.plist file
 */
OMCMobileBackend* mbe = [[OMCMobileManager sharedManager] mobileBackend];

プラットフォームApiの呼出し

バックエンドの構成情報がアプリケーションにロードされると、iOS Coreライブラリ・クラスに基づいてクライアントSDKクラスへのコールを行うことができます。

IOSコア・ライブラリ(libOMCCore.a)は、次のキー・インタフェースを提供します。

  • OMCMobileManager

  • OMCMobileBackend (OMCMobileComponentのサブクラス)

  • OMCCxAAnalyticsApp (OMCMobileComponentのサブクラス)

  • OMCServiceProxy

SDKのルート・オブジェクトはOMCMobileManagerです。OMCMobileManagerは、OMCMobileBackendオブジェクトを管理します。

OMCMobileBackendオブジェクトは、アプリケーションとそれに関連付けられているモバイル・バックエンド間の接続、認証およびその他のトランザクション(プラットフォームapiへのコールや、ユーザーが定義したカスタムapiのコールなど)の管理に使用されます。OMCLocationOMCStorageなど、OMCServiceProxyのサブクラスを介してプラットフォームapiへのコールを管理します。

SDKクラスを使用してストレージAPIを呼び出す例を次に示します。

#import "OMCMobileBackend.h"
#import "OMCMobileManager.h"
#import "OMCAuthorization.h"
#import "OMCStorage.h"
#import "OMCMobileBackend+OMC_Storage.h"
#import "OMCSynchronization.h"

- (NSData*)dataFromStorageObjectWithID:(NSString*)objectID collectionID:(NSString*)collectionID {     

  // Get mobile backend
  OMCMobileBackend* mbe = [[OMCMobileManager sharedManager] mobileBackend];

  // Get storage object
  OMCStorage* storage = [mbe storage];
    
  // Get your collection
  OMCStorageCollection* collection = [storage getCollection:collectionID];
    
  // Get your object from your collection
  OMCStorageObject* object = [collection get:objectID];
    
  // Get the data from payload of your object
  NSData* data = [object getPayloadData];

   return data; }

}

注意:

IOS用のOracle Mobile Hub SDKで使用される、Object - Cで記述されたメソッドは、Swiftにもマップできます。

カスタムApiのコール

クライアントSDKでは、Oracle Mobile Hubでのカスタムapiの呼出しを簡略化するOMCCustomCodeClientクラスを提供しています。

このクラスを使用して、リクエスト・ペイロードがJSONまたは空であり、レスポンス・ペイロードがJSONまたは空のエンドポイントでRESTメソッド(GET、PUT、POSTまたはDELETE)を起動します。

さらに、リクエスト呼出しが完了したときにコールする完了ハンドラも指定できます(つまり、ハンドラは非同期で実行されます)。

完了ハンドラが設定されている場合は、メソッドの呼出しが完了するとUI (メイン)スレッド内で起動され、UI項目の更新が可能になります。完了ブロックには、JSONオブジェクトのフォーマット固有のデータ(つまり、NSDictionaryまたはNSArray)が含まれます。戻されるすべてのデータまたはエラー、HTTPまたはシステムには、完了ブロックを使用します。

Authorizationなど、必要なすべてのOracle Mobile Hubヘッダー(ユーザーが認証済の場合)がリクエストに自動的に挿入されます。

OMCCustomCodeClientの使用は次のようになります。

#import "OMCCore/OMCMobileBackend.h"
#import "OMCCore/OMCCustomCodeClient.h"
...
 
// A GET, PUT, POST, or DELETE method may be specified here - sent or returned JSON data object may be nil as appropriate.
OMCMobileBackend *backend = [[OMCMobileManager sharedManager] mobileBackend];
OMCCustomCodeClient *ccClient = backend.customCodeClient;
NSDictionary *jsonPayload = @{@"myKey": @"myValue"};
[ccClient invokeCustomRequest: @"API2/endpoint2" 
                       method: "@PUT" 
                         data: jsonPayload, 
                   completion: ^(NSError* error,
                                NSHTTPURLResponse *response,
                                id responseData) {
        // error will be nil if no problems occurred, otherwise it will contain the error object
        // response will be complete HTTP response
        // response data will be Map or Array for JSON object if success or nil if error
}];