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:

  1. Adicione o SDK do cliente à sua aplicação.

  2. Preencha o OMC.plist com detalhes de ambiente e autenticação para o backend.

  3. Adicione uma chamada SDK ao seu aplicativo para carregar as informações de configuração.

  4. Adicione uma chamada SDK ao seu aplicativo para tratar de autenticação.

  5. 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 de OMCMobileComponent)

  • OMCCxAAnalyticsApp (uma subclasse de OMCMobileComponent)

  • 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
}];