Mobile APIs aufrufen
In Oracle Mobile Hub ist ein Backend eine logische Gruppierung von benutzerdefinierten APIs, Speicher-Collections und anderen Ressourcen, die Sie in Ihren Apps verwenden können. Das Backend stellt außerdem den Sicherheitskontext für den Zugriff auf diese Ressourcen bereit.
Im Folgenden werden die allgemeinen Schritte zur Verwendung eines Backends in Ihrer iOS-App aufgeführt:
-
Fügen Sie das Client-SDK zu Ihrer App hinzu.
-
Geben Sie
OMC.plist
mit Umgebungs- und Authentifizierungsdetails für das Backend ein. -
Fügen Sie Ihrer App einen SDK-Aufruf hinzu, um die Konfigurationsinformationen zu laden.
-
Fügen Sie Ihrer App einen SDK-Aufruf zur Verarbeitung der Authentifizierung hinzu.
-
Fügen Sie weitere SDK-Aufrufe hinzu, die Sie verwenden möchten.
Backend-Konfiguration laden
Für alle Aufrufe von Oracle Mobile Hub-APIs, die das iOS-Client-SDK verwenden, müssen Sie die Konfiguration des mobilen Backends aus der Datei OMC.plist
der App laden. Verwenden Sie hierzu die Klasse OMCMobileBackend
:
/**
* Returns the mobile backend that is configured in OMC.plist file
*/
OMCMobileBackend* mbe = [[OMCMobileManager sharedManager] mobileBackend];
Call Platform-APIs
Sobald die Konfigurationsinformationen des Backends in die App geladen sind, können Sie auf der Basis der iOS-Core-Library-Klassen Aufrufe an Client-SDK-Klassen vornehmen.
Die iOS-Core-Library (libOMCCore.a
) stellt die folgenden Schlüsselschnittstellen bereit:
-
OMCMobileManager
-
OMCMobileBackend
(eine Unterklasse vonOMCMobileComponent
) -
OMCCxAAnalyticsApp
(eine Unterklasse vonOMCMobileComponent
) -
OMCServiceProxy
Das Root-Objekt im SDK ist OMCMobileManager
. Mit OMCMobileManager
werden die OMCMobileBackend
-Objekte verwaltet.
Das Objekt OMCMobileBackend
wird zur Verwaltung von Konnektivität, Authentifizierung und anderen Transaktionen zwischen Ihrer Anwendung und dem zugehörigen mobilen Backend verwendet, einschließlich Aufrufen von Plattform-APIs und benutzerdefinierten APIs, die Sie definiert haben. Sie verwaltet Aufrufe von Plattform-APIs über Unterklassen von OMCServiceProxy
, wie OMCLocation
und OMCStorage
.
Im Folgenden finden Sie ein Beispiel für die Verwendung von SDK-Klassen zum Aufrufen der Speicher-API:
#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; }
}
Hinweis:
In Objective-C geschriebene Methoden, die im Oracle Mobile Hub-SDK für iOS verwendet werden, können ebenfalls Swift zugeordnet werden.Benutzerdefinierte APIs aufrufen
Das Client-SDK stellt die Klasse OMCCustomCodeClient
bereit, um den Aufruf von benutzerdefinierten APIs in Oracle Mobile Hub zu vereinfachen.
Mit dieser Klasse rufen Sie eine REST-Methode (GET, PUT, POST oder DELETE) auf einem Endpunkt auf, bei dem die Anforderungs-Payload JSON oder leer ist und die Antwort-Payload JSON oder leer ist.
Außerdem können Sie einen Abschluss-Handler angeben, der aufgerufen werden soll, wenn der Anforderungsaufruf abgeschlossen ist (d.h. der Handler wird asynchron ausgeführt).
Wenn der Abschluss-Handler festgelegt ist, wird er nach Abschluss des Methodenaufrufs im UI-Thread (Haupt-) aufgerufen, sodass UI-Elemente aktualisiert werden können. Der Abschlussblock enthält die formatspezifischen Daten für ein JSON-Objekt, d.h. NSDictionary
oder NSArray
. Verwenden Sie den Abschlussblock für zurückgegebene Daten oder Fehler, HTTP oder System.
Alle erforderlichen Oracle Mobile Hub-Header, wie Authorization
(angenommen, dass der Benutzer authentifiziert wurde), werden automatisch in die Anforderung eingefügt.
Die Verwendung von OMCCustomCodeClient
könnte etwa folgendermaßen aussehen:
#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
}];