呼叫 Mobile API
在Oracle Mobile Hub中,後端是自訂 api、儲存集合與其他可在應用程式中使用之資源的邏輯群組。後端還會提供存取這些資源所需的安全相關資訊環境。
以下是在 iOS 應用程式中使用後端的一般步驟:
-
將從屬端 SDK 新增至您的應用程式。
-
以環境和後端的認證詳細資訊填入
OMC.plist
。 -
新增 SDK 呼叫您的應用程式以載入組態資訊。
-
新增 SDK 呼叫您的應用程式以處理認證。
-
新增您要使用的任何其他 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 的根物件是 OMCMobileManager
。OMCMobileManager
管理 OMCMobileBackend
物件。
OMCMobileBackend
物件可用來管理應用程式與其關聯行動後端之間的連線、認證及其他交易,包括對平台 api 的呼叫以及您已定義的任何自訂 api。它透過 OMCServiceProxy
之子類別 (例如 OMCLocation
和 OMCStorage
) 管理對平台 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 物件 (即 NSDictionary
或 NSArray
) 的格式特定資料。針對任何傳回的資料、錯誤、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
}];