Chamar APIs Móveis
No Oracle Mobile Hub, um backend é um agrupamento lógico de APIs personalizadas, coleções de armazenamento e outros recursos que você pode usar em seus aplicativos. O backend também fornece o contexto de segurança para acessar esses recursos.
Aqui estão as etapas gerais para usar um backend em sua aplicação iOS:
-
Adicione o SDK do cliente à sua aplicação.
-
Preencha o
OMC.plist
com detalhes de ambiente e autenticação para o backend. -
Adicione uma chamada SDK ao seu aplicativo para carregar as informações de configuração.
-
Adicione uma chamada SDK ao seu aplicativo para tratar de autenticação.
-
Adicione quaisquer outras chamadas do SDK que você deseja usar.
Carregar a Configuração do Backend
Para que qualquer chamada para APIs Oracle Mobile Hub usando o SDK do cliente iOS para ser concluída com sucesso, você precisa ter a configuração do backend móvel carregada do arquivo OMC.plist
da aplicação. Faça isso usando a classe OMCMobileBackend
:
/**
* Returns the mobile backend that is configured in OMC.plist file
*/
OMCMobileBackend* mbe = [[OMCMobileManager sharedManager] mobileBackend];
APIs de Plataforma de Chamada
Depois que as informações de configuração de backend forem carregadas na aplicação, você poderá fazer chamadas para classes SDK de cliente baseadas nas classes de biblioteca do iOS Core.
A biblioteca iOS Core (libOMCCore.a
) fornece as seguintes interfaces de chave:
-
OMCMobileManager
-
OMCMobileBackend
(uma subclasse deOMCMobileComponent
) -
OMCCxAAnalyticsApp
(uma subclasse deOMCMobileComponent
) -
OMCServiceProxy
O objeto raiz no SDK é OMCMobileManager
. O OMCMobileManager
gerencia os objetos OMCMobileBackend
.
O objeto OMCMobileBackend
é usado para gerenciar a conectividade, a autenticação e outras transações entre seu aplicativo e seu backend móvel associado, incluindo chamadas para APIs de plataforma e todas as APIs personalizadas definidas por você. Ele gerencia chamadas para APIs de plataforma via subclasses de OMCServiceProxy
, como OMCLocation
e OMCStorage
.
Este é um exemplo de como usar classes SDK para chamar a API de Armazenamento:
#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; }
}
Observação:
Os métodos gravados no Objective-C que são usados no Oracle Mobile Hub SDK para iOS também podem ser mapeados para o Swift.Chamar APIs Personalizadas
O SDK cliente fornece a classe OMCCustomCodeClient
para simplificar a chamada de APIs personalizadas no Oracle Mobile Hub.
Usando essa classe, você chama um método REST (GET, PUT, POST ou DELETE) em um ponto final no qual o payload da solicitação é JSON ou está vazio e o payload de resposta é JSON ou vazio.
Além disso, você pode fornecer um handler de conclusão a ser chamado quando a chamada da solicitação for concluída (o que significa que o handler é executado de forma assíncrona).
Se o handler de conclusão for definido, ele será chamado no thread da UI (principal) na conclusão da chamada do método, permitindo a atualização dos itens da UI. O bloco de conclusão conterá os dados específicos do formato para um objeto JSON, ou seja, um NSDictionary
ou NSArray
. Use o bloco de conclusão para quaisquer dados ou erros retornados, HTTP ou sistema.
Todos os cabeçalhos Oracle Mobile Hub necessários, como Authorization
(supondo que o usuário tenha sido autenticado), serão inseridos automaticamente na solicitação.
O uso de OMCCustomCodeClient
pode ser semelhante a este:
#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
}];