呼叫 Mobile 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 核心程式庫類別,呼叫從屬端 SDK 類別。

IOS 核心程式庫 (libOMCCore.a) 提供下列主要介面:

  • OMCMobileManager

  • OMCMobileBackend (OMCMobileComponent 的子類別)

  • OMCCxAAnalyticsApp (OMCMobileComponent 的子類別)

  • OMCServiceProxy

SDK 的根物件是 OMCMobileManagerOMCMobileManager 管理 OMCMobileBackend 物件。

OMCMobileBackend 物件可用來管理應用程式與其關聯行動後端之間的連線、認證及其他交易,包括對平台 api 的呼叫以及您已定義的任何自訂 api。它透過 OMCServiceProxy 之子類別 (例如 OMCLocationOMCStorage) 管理對平台 api 的呼叫。

以下為使用 SDK 類別呼叫 Storage 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; }

}

注意事項:

以 Objective-C 撰寫且用於Oracle Mobile Hub SDK for iOS 的方法也可以對應至 Swift。

呼叫自訂 Api

從屬端 SDK 提供 OMCCustomCodeClient 類別,可簡化在Oracle Mobile Hub中呼叫自訂 api。

使用此類別時,您會在要求有效負載為 JSON 或空白的端點上呼叫 REST 方法 (GET、PUT、POST 或 DELETE),而回應有效負載為 JSON 或空白。

此外,您還可以在要求呼叫完成時提供完成處理程式 (代表處理程式以非同步方式執行)。

如果設定完成處理程式,則會在完成方法呼叫時,在 UI (主要) 繫線中呼叫它,以允許更新 UI 項目。完成區塊將包含 JSON 物件 (即 NSDictionaryNSArray) 的格式特定資料。針對任何傳回的資料、錯誤、HTTP 或系統,使用完成區塊。

會自動將所有必要的Oracle Mobile Hub 標頭(例如 Authorization (假設使用者已經過認證) 插入要求中。

使用 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
}];