Llamar a API móviles
En Oracle Mobile Hub, un backend es un agrupamiento lógico de API personalizadas, recopilaciones de almacenamiento y otros recursos que puede utilizar en sus aplicaciones. El backend también proporciona el contexto de seguridad para acceder a esos recursos.
A continuación se muestran los pasos generales para utilizar un backend en su aplicación iOS:
-
Agregue el SDK de cliente a su aplicación.
-
Rellene
OMC.plist
con los detalles de entorno y autenticación del backend. -
Agregue una llamada SDK a su aplicación para cargar la información de configuración.
-
Agregue una llamada SDK a su aplicación para gestionar la autenticación.
-
Agregue cualquier otra llamada de SDK que desee utilizar.
Cargar Configuración del Backend
Para que las llamadas a las API de Oracle Mobile Hub que utilizan el SDK de cliente de iOS se completen correctamente, debe tener la configuración del backend móvil cargada en el archivo OMC.plist
de la aplicación. Para ello, utilice la clase OMCMobileBackend
:
/**
* Returns the mobile backend that is configured in OMC.plist file
*/
OMCMobileBackend* mbe = [[OMCMobileManager sharedManager] mobileBackend];
API de plataforma de llamada
Una vez que la información de configuración del backend se carga en la aplicación, puede realizar llamadas a clases de cliente SDK en función de las clases de biblioteca del núcleo central iOS.
La biblioteca Core de iOS (libOMCCore.a
) proporciona las siguientes interfaces clave:
-
OMCMobileManager
-
OMCMobileBackend
(subclase deOMCMobileComponent
) -
OMCCxAAnalyticsApp
(subclase deOMCMobileComponent
) -
OMCServiceProxy
El objeto raíz del SDK es OMCMobileManager
. OMCMobileManager
gestiona los objetos OMCMobileBackend
.
El objeto OMCMobileBackend
se utiliza para gestionar la conectividad, la autenticación y otras transacciones entre su aplicación y su backend móvil asociado, incluidas las llamadas a las API de plataforma y las API personalizadas que haya definido. Gestiona las llamadas a las API de plataforma mediante subclases de OMCServiceProxy
como OMCLocation
y OMCStorage
.
A continuación se presenta un ejemplo del uso de clases SDK para llamar a la API de almacenamiento:
#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; }
}
Nota:
Los métodos escritos en Objective-C que se utilizan en Oracle Mobile Hub SDK para iOS también se pueden asignar a Swift.Llamar a API personalizadas
El SDK del cliente proporciona la clase OMCCustomCodeClient
para simplificar la llamada de API personalizadas en Oracle Mobile Hub.
Mediante esta clase, llama a un método REST (GET, PUT, POST o DELETE) en un punto final donde la carga útil de solicitud es JSON o está vacía y la carga útil de respuesta es JSON o está vacía.
Además, puede proporcionar un manejador de terminación que llamar cuando termine la llamada a la solicitud (lo que significa que el manejador se ejecuta de forma asíncrona).
Si se define el manejador de terminación, se llamará en el thread de interfaz de usuario (principal) al terminar la llamada al método, lo que permite actualizar los elementos de la interfaz de usuario. El bloque de finalización contendrá los datos específicos del formato para un objeto JSON, es decir, un NSDictionary
o NSArray
. Utilice el bloque de finalización para cualquier dato o error devuelto, HTTP o sistema.
Todas las cabeceras de Oracle Mobile Hub necesarias, como Authorization
(asumiendo que el usuario se ha autenticado), se insertarán automáticamente en la solicitud.
El uso de OMCCustomCodeClient
podría tener un aspecto similar al siguiente:
#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
}];