Ressourcenanforderung von Ionic-Anwendungen
improve this page | report issueÜbersicht
Mit der MobileFirst erstellte Anwendungen können mit der REST-API WLResourceRequest
auf Ressourcen zugreifen.
Die REST-API funktioniert mit allen Adaptern und externen Ressourcen.
Voraussetzungen:
- Wenn Sie eine Ionic-Anwendung implementieren, müssen Sie das SDK der Mobile Foundation zu Ihrer Ionic-Anwendung hinzugefügt haben.
- Informieren Sie sich über das Erstellen von Adaptern.
WLResourceRequest
Die Klasse WLResourceRequest
handhabt an Adapter oder externe Ressourcen gerichtete Ressourcenanforderungen.
Erstellen Sie ein WLResourceRequest
-Objekt und geben Sie den Pfad zu der Ressource und die HTTP-Methode an.
Verfügbare Methoden sind WLResourceRequest.GET
, WLResourceRequest.POST
, WLResourceRequest.PUT
und WLResourceRequest.DELETE
.
var resourceRequest = new WLResourceRequest(
"/adapters/JavaAdapter/users",
WLResourceRequest.GET
);
- Verwenden Sie für JavaScript-Adapter
/adapters/{AdapterName}/{procedureName}
. - Verwenden Sie für Java-Adapter
/adapters/{AdapterName}/{path}
. Die Angabe fürpath
hängt davon ab, wie Sie Ihre@Path
-Annotationen im Java-Code definiert haben. Eingeschlossen sind auch alle verwendeten@PathParam
-Annotationen. - Wenn Sie auf Ressourcen außerhalb des Projekts zugreifen möchten, verwenden Sie die vollständige URL nach Maßgabe des externen Servers.
- timeout: Anforderungszeitlimit in Millisekunden (optional)
Anforderung senden
Fordern Sie die Ressource mit der Methode send()
an.
Die Methode send()
kann optional mit einem Parameter verwendet werden, um einen Hauptteil für die HTTP-Anforderung festzulegen. Dabei kann es sich um ein JSON-Objekt oder um eine einfache Zeichenfolge handeln.
Mit TypeScript-Zusicherungen (Promises) können Sie die Callback-Funktionen für Erfolg (Success
) und Fehler (Failure
) definieren.
resourceRequest.send().then(
(response) => {
// Erfolg
},
(error) => {
// Fehler
}
)
setQueryParameter
Mit der Methode setQueryParameter
können Sie Abfrageparameter (URL-Parameter) in die REST-Anforderung aufnehmen.
resourceRequest.setQueryParameter("param1", "value1");
resourceRequest.setQueryParameter("param2", "value2");
JavaScript-Adapter
JavaScript-Adapter verwenden sortierte unbenannte Parameter. Wenn Sie Parameter an einen JavaScript-Adapter übergeben möchten, definieren Sie ein Parameter-Array mit dem Namen params
:
Hinweis: Der Wert von
params
muss eine Zeichenfolgedarstellung eines Arrays sein.
resourceRequest.setQueryParameter("params", "['value1', 'value2']");
Dieses Array sollte mit WLResourceRequest.GET
verwendet werden.
setHeader
Mit der Methode setHeader
können Sie einen neuen HTTP-Header festlegen oder einen vorhandenen Header desselben Namens in der HTTP-Anforderung ersetzen.
resourceRequest.setHeader("Header-Name","value");
sendFormParameters(json)
Wenn Sie URL-Formularparameter senden möchten, verwenden Sie stattdessen die Methode sendFormParameters(json)
. Diese Methode konvertiert JSON in eine URL-codierte Zeichenfolge,
legt application/x-www-form-urlencoded
als Inhaltstyp (content-type
) fest und definiert dies als HTTP-Hauptteil:
var formParams = {"param1": "value1", "param2": "value2"};
resourceRequest.sendFormParameters(formParams);
JavaScript-Adapter
JavaScript-Adapter verwenden sortierte unbenannte Parameter. Wenn Sie Parameter an einen JavaScript-Adapter übergeben möchten, definieren Sie ein Parameter-Array mit dem Namen params
:
var formParams = {"params":"['value1', 'value2']"};
Dieses Array sollte mit WLResourceRequest.POST
verwendet werden.
Weitere Hinweise zu
WLResourceRequest
finden Sie in der Benutzerdokumentation im Abschnitt mit den API-Referenzinformationen.
Antwort
Die Callback-Funktionen onSuccess
und onFailure
empfangen ein Antwortobjekt (response
). Dieses Objekt response
enthält die Antwortdaten. Über die Eigenschaften dieses Objekts können Sie die erforderlichen Informationen abrufen. Gängige Eigenschaften sind
responseText
, responseJSON
(JSON Object) (wenn die Antwort im JSON-Format vorliegt)
und status
(HTTP-Status der Antwort).
Falls eine Anforderung fehlschlägt, enthält das Objekt response
auch eine Eigenschaft errorMsg
.
Die Antwort kann je nachdem, ob ein Java- oder JavaScript-Adapter verwendet wird, weitere Eigenschaften enthalten, z. B. responseHeaders
, responseTime
, statusCode
, statusReason
und totalTime
.
{
"responseHeaders": {
"Content-Type": "application/json",
"X-Powered-By": "Servlet/3.1",
"Content-Length": "86",
"Date": "Mon, 15 Feb 2016 21:12:08 GMT"
},
"status": 200,
"responseText": "{\"height\":\"184\",\"last\":\"Doe\",\"Date\":\"1984-12-12\",\"age\":31,\"middle\":\"C\",\"first\":\"John\"}",
"responseJSON": {
"height": "184",
"last": "Doe",
"Date": "1984-12-12",
"age": 31,
"middle": "C",
"first": "John"
},
"invocationContext": null
}
Antwort bearbeiten
Das Antwortobjekt wird von den Callback-Funktionen für Erfolg (Success
) und Fehler (Failure
) empfangen.
Beispiel:
resourceRequest.send().then(
(response) => {
resultText = "Successfully called the resource: " + response.responseText;
},
(error) => {
resultText = "Failed to call the resource:" + response.errorMsg;
}
)
Zugriff auf Mikroservices mit WLResourceRequest
Die API WLResourceRequest
kann verwendet werden, wenn mobile Apps Zugriff auf Mikroservices haben sollen, die außerhalb der Mobile Foundation bereitgestellt werden. Die Mobile Foundation erleichtert mithilfe des Mobile Foundation API Connector geschützte Aufrufe von Mikroservices oder Back-End-Unternehmensservices ohne den Einsatz von Adaptern. Wie ein Adapter ermöglicht der API Connector mit dem OAuth-2.0-Mechanismus der Mobile Foundation geschützte Aufrufe. Mit dem API Connector kann ein Mobile-Foundation-Administrator Einzelheiten von Mikroservices oder Back-End-Unternehmensservices in der Mobile Foundation konfigurieren und implementieren. Die implementierte Konfiguration wird in der Mobile-Foundation-Laufzeit verwendet, um von der mobilen App geschützt Mikroservices oder Back-End-Services anzufordern.
Informieren Sie sich über die Konfiguration des Mobile Foundation API Connector.
Der Zugriff auf eine Mikroservice-URL
wie “http://mybluemix.net/resorts/cities” und auf den Back-End-Service der Mobile-Foundation-Laufzeit wird wie folgt konfiguriert:
{
"service": "resorts",
"baseUrl":"http://mybluemix.net/resorts"
}
WLResourceRequest
kann wie folgt definiert werden:
var options = { timeout, backendServiceName}
WLResourceRequest request = new WLResourceRequest(url,WLResourceRequest.GET, options);
- url: Relative URL des Mikroserviceendpunkts, z. B.
cities
- method: Zu verwendende HTTP-Methode, z. B.
WLResourceRequest.GET
- backendServiceName: Name des auf dem Server konfigurierten Back-End-Service, von dem Daten abgerufen werden sollen, z. B. resorts
- timeout: Zeitlimit in Millisekunden für diese Anforderung
Weitere Informationen
Weitere Hinweise zu
WLResourceRequest
finden Sie in den API-Referenzinformationen.
Beispielanwendungen
Das Projekt ResourceRequestIonic demonstriert eine Ressourcenanforderung unter Verwendung eines Java-Adapters.
Das Adapter-Maven-Projekt enthält den beim Aufrufen der Ressourcenanforderung verwendeten Java-Adapter.
Klicken Sie hier, um das Ionic-Projekt herunterzuladen.
Klicken Sie hier, um das Adapter-Maven-Projekt herunterzuladen.
Verwendung des Beispiels
Anweisungen finden Sie in der Datei README.md zum Beispiel.
▲Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.