استدعاء Api المتنقلة
في Oracle Mobile Hub، تعد النهاية الخلفية بمثابة تجميع منطقي واجهات API المخصصة ومجموعات التخزين وموارد أخرى يمكنك استخدامها في تطبيقاتك. كما توفر النهاية الخلفية سياق التأمين للوصول إلى تلك الموارد.
فيما يلي الخطوات العامة لاستخدام نهاية خلفية في تطبيق Android:
-
إضافة SDK للعميل إلى التطبيق.
-
املأ
oracle_mobile_cloud_config.xml
مع بيانات البيئة والمصادقة للنهاية الخلفية. -
أضف استدعاء SDK للتطبيق لتحميل معلومات التكوين.
-
أضف استدعاء SDK للتطبيق الخاص بك لمعالجة التصديق.
-
قم بإضافة أية استدعاءات SDK أخرى ترغب في استخدامها.
تحميل تركيب الخلفية
بالنسبة لأية استدعاءات إلى واجهات API الخاصة بلوحة وصل Oracle Mobile Hub باستخدام وحدة SDK عميل Android حتى تكتمل بنجاح، يتعين أن يكون لديك تكوين الخلفية الذي تم تحميله من ملف oracle_mobile_cloud_config.xml
الخاص بالتطبيق. يمكنك القيام بذلك باستخدام الطبقة MobileManager
:
MobileManager.getManager().getMobileBackend(this)
استدعاء Api النظام الأساسي
بمجرد تحميل معلومات تكوين برنامج Mobile backend في التطبيق ، يمكنك إجراء استدعاءات لطبقات SDK الخاصة بالعميل.
الكائن الأولي في Android SDK هو MobileManager
. يقوم الكائن MobileManager
بإدارة كائنات MobileBackend
.
يعمل الكائن MobileBackend
على إدارة الاتصال والتصديق وغيرها من الحركات بين تطبيقك والعائلة المرتبطة به ، بما في ذلك استدعاءات واجهات api الخاصة بمنصة التشغيل وأية واجهات api مخصصة قمت بتعريفها. وهو يقوم بإدارة الاستدعاءات إلى واجهات Api لمنصة التشغيل من خلال طبعات ServiceProxy
مثل Storage
و Location
.
فيما يلي مثال لكيفية استخدام هذه الكلاسات لتحميل صورة باستخدام واجهة API للتخزين:
try {
Storage storage = MobileManager.getManager().getMobileBackend(this).getServiceProxy(Storage.class);
StorageCollection imagesCollection = storage.getStorageCollection("FIF_Images");
StorageObject imageToUpload = new StorageObject(null, imageBytes, "image/jpeg");
StorageObject uploadedImage = imagesCollection.post(imageToUpload);
} catch(ServiceProxyException e) {int errorCode = e.getErrorCode();
...
}
تقوم طبعة ServiceProxy
بتكوين عمليات استدعاء إلى واجهة API لمنصة التخزين ، بما في ذلك إنشاء رؤوس HTTP باستخدام صلاحيات نهاية خلفية الجوال اللازمة للوصول إلى واجهة API.
وفيما يلي كيفية استرجاع صورة باستخدام واجهة API للتخزين:
try {
Storage storage = MobileManager.getManager().getMobileBackend(this).getServiceProxy(Storage.class);
StorageCollection imagesCollection = storage.getStorageCollection("FIF_Images");
StorageObject image = imagesCollection.get("3x4mp1e-st0r4g3-0bj3ct-k3y");byte[] imageBytes = image.getPayloadBytes();
} catch(ServiceProxyException e) {int errorCode = e.getErrorCode();
...
}
استدعاء Api المفصل
يوفر SDK للعميل طبقة CustomHttpResponse
وواجهة GenericCustomCodeClientCallBack
والأسلوب invokeCustomCodeJSONRequest
في طبقات الاعتماد لتبسيط استدعاء APIs المخصصة في Oracle Mobile Hub. يمكنك استدعاء أسلوب REST (GET أو PUT أو POST أو DELETE) بنقطة انتهاء حيث تكون حمولة الطلب JSON أو فارغة حمولة الاستجابة هي JSON أو فارغة.
يمكنك استخدام GenericCustomCodeClientCallBack
لتكوين مرجع للاستجابة (والتي يتم إرجاعها على هيئة كائن CustomHttpResponse
.)
ثم لاستدعاء واجهة API المخصصة ، عليك باستدعاء invokeCustomCodeJSONRequest(GenericCustomCodeClientCallBack restClientCallback, JSONObject data, String functionName, RestClient.HttpMethod httpMethod)
على أوبجيكت Authorization
الخاص بك.
لإجراء استدعاء لنقطة انتهاء API مخصصة ، يمكن استخدام شيء مثل هذا:
import org.json.JSONObject;
import oracle.cloud.mobile.customcode.CustomHttpResponse;
import oracle.cloud.mobile.customcode.GenericCustomCodeClientCallBack;
import oracle.cloud.mobile.mobilebackend.MobileManager;
.......
final GenericCustomCodeClientCallBack genericCustomCodeClientCallBack = new GenericCustomCodeClientCallBack() {
@Override
public void requestCompleted(CustomHttpResponse response, JSONObject data, Exception e) {
boolean getResponse = (response.getHttpStatus() >=200 && response.getHttpStatus() <300);
// write any logic based on above response
}
};
AuthorizationAgent authorization = MobileManager.getManager().getMobileBackend(this).getAuthorization();
authorization.authenticate(mActivity, "user1", "pass1", successCallback);
........
// after the user successfully authenticates, make a call to the custom API endpoint
authorization.invokeCustomCodeJSONRequest(genericCustomCodeClientCallBack, null, "TaskApi/tasks", RestClient.HttpMethod.GET);