استدعاء Api المتنقلة
في Oracle Mobile Hub، تعد النهاية الخلفية بمثابة تجميع منطقي واجهات API المخصصة ومجموعات التخزين وموارد أخرى يمكنك استخدامها في تطبيقاتك. كما توفر النهاية الخلفية سياق التأمين للوصول إلى تلك الموارد.
فيما يلي الخطوات العامة لاستخدام النهاية الخلفية في تطبيق iOS:
-
إضافة SDK للعميل إلى التطبيق.
-
املأ
OMC.plist
مع بيانات البيئة والمصادقة للنهاية الخلفية. -
أضف استدعاء SDK للتطبيق لتحميل معلومات التكوين.
-
أضف استدعاء SDK للتطبيق الخاص بك لمعالجة التصديق.
-
قم بإضافة أية استدعاءات SDK أخرى ترغب في استخدامها.
تحميل تركيب الخلفية
بالنسبة لأية استدعاءات إلى واجهات API الخاصة بلوحة وصل Oracle Mobile Hub باستخدام واجهة iOS client SDK حتى تكتمل بنجاح، يتعين أن يكون لديك تكوين الخلفية المحمولة الذي تم تحميله من ملف OMC.plist
الخاص بالتطبيق. يمكنك القيام بذلك باستخدام الطبقة OMCMobileBackend
:
/**
* Returns the mobile backend that is configured in OMC.plist file
*/
OMCMobileBackend* mbe = [[OMCMobileManager sharedManager] mobileBackend];
استدعاء Api النظام الأساسي
بمجرد تحميل معلومات تكوين الخلفية في التطبيق ، يمكنك إجراء استدعاءات إلى كلاسات SDK الخاصة بالعميل استنادًا إلى كلاسات مكتبة iOS الأساسية.
توفر مكتبة iOS الأساسية (libOMCCore.a
) واجهات المفاتيح التالية:
-
OMCMobileManager
-
OMCMobileBackend
(كلاس فرعية لـOMCMobileComponent
) -
OMCCxAAnalyticsApp
(كلاس فرعية لـOMCMobileComponent
) -
OMCServiceProxy
الأوبجيكت الأولي في SDK هو OMCMobileManager
. يعمل OMCMobileManager
على إدارة كائنات OMCMobileBackend
.
يتم استخدام الكائن OMCMobileBackend
لإدارة الاتصال والتصديق والحركات الأخرى بين التطبيق والإنهاء في الخلفية المتحركة المرتبطة به ، بما في ذلك الاستدعاءات إلى واجهات api الأساسية وأية واجهات api مخصصة قمت بتعريفها. وهو يقوم بإدارة استدعاءات واجهات Api لمنصة تشغيل عبر الكلاسات الفرعية لـ OMCServiceProxy
مثل OMCLocation
و OMCStorage
.
فيما يلي مثال على استخدام طبقات 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; }
}
ملاحظة:
الأساليب المكتوبة في Objective - يمكن استخدامها في Oracle Mobile Hub SDK لنظام iOS من أجل Swift.استدعاء Api المفصل
يوفر SDK للعميل طبقة OMCCustomCodeClient
لتبسيط استدعاء APIs المخصصة في Oracle Mobile Hub.
باستخدام هذه الكلاس ، يتم استدعاء أسلوب REST (GET أو PUT أو POST أو DELETE) في نقطة انتهاء حيث حمولة الطلب هي JSON أو فارغ ، مع أن حمولة الاستجابة هي JSON أو فارغة.
بالإضافة إلى ذلك ، يمكنك توفير معالج إكمال ليتم استدعاؤه عند اكتمال استدعاء الطلب (مما يعني أن المعالج يعمل بشكل غير متزامن).
إذا تم تعيين مرجع الإتمام ، يتم استدعاؤه في سلسلة عمليات واجهة المستخدم (الرئيسية) عند اكتمال استدعاء الأسلوب ، مما يسمح بتحديث عناصر واجهة المستخدم. تشتمل وحدة الإكمال على بيانات خاصة بصياغة لكائن 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
}];