API mobiles d'appel
Dans Oracle Mobile Hub, un back-end est un regroupement logique d'API personnalisées, de collections de stockage et d'autres ressources que vous pouvez utiliser dans vos applications. Le back-end fournit également le contexte de sécurité permettant d'accéder à ces ressources.
Voici les étapes générales d'utilisation d'un back-end dans votre application Android :
-
Ajoutez le SDK client à votre application.
-
Renseignez
oracle_mobile_cloud_config.xml
avec les détails d'environnement et d'authentification du back-end. -
Ajoutez un appel SDK à votre application pour charger les informations de configuration.
-
Ajoutez un appel SDK à votre application pour gérer l'authentification.
-
Ajoutez tout autre appel SDK que vous voulez utiliser.
Charger la configuration du back-end
Pour que les appels aux API Oracle Mobile Hub effectués à l'aide du kit SDK client Android soient terminés, la configuration du back-end doit être chargée à partir du fichier oracle_mobile_cloud_config.xml
de l'application. Pour ce faire, utilisez la classe MobileManager
:
MobileManager.getManager().getMobileBackend(this)
API de plate-forme d'appel
Une fois les informations de configuration du back-end mobile chargées dans l'application, vous pouvez effectuer des appels aux classes SDK client.
L'objet racine dans le SDK Android est MobileManager
. L'objet MobileManager
gère les objets MobileBackend
.
L'objet MobileBackend
gère la connectivité, l'authentification et d'autres transactions entre votre application et son back-end associé, y compris les appels vers les API de plate-forme et les API personnalisées que vous avez définies. Il gère les appels aux API de plate-forme via les instances de ServiceProxy
telles que Storage
et Location
.
Voici un exemple d'utilisation de ces classes pour télécharger une image à l'aide de l'API de stockage :
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'instance ServiceProxy
a créé des appels à l'API de la plate-forme de stockage, y compris la construction des en-têtes HTTP avec les informations d'identification de back-end mobile nécessaires pour accéder à l'API.
De plus, vous pouvez extraire une image à l'aide de l'API de stockage :
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();
...
}
Appeler des API personnalisées
Le kit SDK client fournit la classe CustomHttpResponse
, l'interface GenericCustomCodeClientCallBack
et la méthode invokeCustomCodeJSONRequest
dans les classes d'autorisation pour simplifier l'appel des API personnalisées dans Oracle Mobile Hub. Vous pouvez appeler une méthode REST (GET, PUT, POST ou DELETE) sur une adresse où les données traitées de demande sont JSON ou vides et les données traitées de réponse sont JSON ou vides.
Utilisez GenericCustomCodeClientCallBack
pour créer un gestionnaire pour la réponse (renvoyée sous la forme d'un objet CustomHttpResponse
).
Ensuite, pour appeler l'API personnalisée, appelez invokeCustomCodeJSONRequest(GenericCustomCodeClientCallBack restClientCallback, JSONObject data, String functionName, RestClient.HttpMethod httpMethod)
sur votre objet Authorization
.
Pour appeler une adresse d'API personnalisée, vous pouvez utiliser une syntaxe de ce type :
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);