Chiama API mobile
In Oracle Mobile Hub, un backend è un raggruppamento logico di API personalizzate, raccolte di memoria e altre risorse che è possibile utilizzare nelle applicazioni. Il backend fornisce inoltre il contesto di sicurezza per accedere a tali risorse.
Di seguito vengono descritti i passi generali per l'uso di un backend nell'applicazione Android.
-
Aggiungere l'SDK client all'applicazione.
-
Compilare
oracle_mobile_cloud_config.xml
con i dettagli relativi all'ambiente e all'autenticazione per il backend. -
Aggiungere una chiamata SDK all'applicazione per caricare le informazioni di configurazione.
-
Aggiungere una chiamata SDK all'applicazione per gestire l'autenticazione.
-
Aggiungere tutte le altre chiamate SDK che si desidera utilizzare.
Carica la configurazione del backend
Per completare correttamente le chiamate alle interfacce API Oracle Mobile Hub utilizzando il kit SDK client Android, è necessario caricare la configurazione del backend dal file oracle_mobile_cloud_config.xml
dell'applicazione. A tale scopo, utilizzare la classe MobileManager
:
MobileManager.getManager().getMobileBackend(this)
API piattaforma chiamate
Dopo aver caricato le informazioni di configurazione del backend mobile nell'applicazione, è possibile effettuare chiamate alle classi SDK client.
L'oggetto radice nel kit SDK Android è MobileManager
. L'oggetto MobileManager
gestisce gli oggetti MobileBackend
.
L'oggetto MobileBackend
gestisce la connettività, l'autenticazione e altre transazioni tra l'applicazione e il relativo backend associato, incluse le chiamate alle API della piattaforma e qualsiasi API personalizzata definita. Gestisce le chiamate alle API di piattaforma tramite istanze di ServiceProxy
quali Storage
e Location
.
Di seguito è riportato un esempio di come utilizzare queste classi per caricare un'immagine mediante l'API per la memorizzazione:
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();
...
}
L'istanza ServiceProxy
creata gestisce le chiamate all'interfaccia API della piattaforma di memorizzazione, inclusa la creazione delle intestazioni HTTP con le credenziali del backend mobile necessarie per accedere all'interfaccia API.
Di seguito è riportata la procedura per recuperare un'immagine mediante l'interfaccia API di storage:
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();
...
}
Chiama API personalizzate
Il kit SDK client fornisce la classe CustomHttpResponse
, l'interfaccia GenericCustomCodeClientCallBack
e il metodo invokeCustomCodeJSONRequest
nelle classi di autorizzazione per semplificare il richiamo delle interfacce API personalizzate in Oracle Mobile Hub. È possibile richiamare un metodo REST (GET, PUT, POST o DELETE) su un endpoint in cui il payload della richiesta è JSON o vuoto e il payload della risposta è JSON o vuoto.
Utilizzare GenericCustomCodeClientCallBack
per creare un handler per la risposta (restituita sotto forma di oggetto CustomHttpResponse
).
Per richiamare l'interfaccia API personalizzata è quindi necessario chiamare invokeCustomCodeJSONRequest(GenericCustomCodeClientCallBack restClientCallback, JSONObject data, String functionName, RestClient.HttpMethod httpMethod)
sull'oggetto Authorization
.
Per effettuare una chiamata a un endpoint API personalizzato, è possibile utilizzare un comando simile al seguente:
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);