Ressourcenanforderung von Android-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:

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, WLResourceRequest.HEAD und WLResourceRequest.DELETE.

URI adapterPath = URI.create("/adapters/JavaAdapter/users");
WLResourceRequest request = new WLResourceRequest(adapterPath,WLResourceRequest.GET);
  • Verwenden Sie für JavaScript-Adapter /adapters/{AdapterName}/{procedureName}.
  • Verwenden Sie für Java-Adapter /adapters/{AdapterName}/{path}. Die Angabe für path 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)
  • scope: Optional, wenn Sie wissen, mit welchem Bereich die Ressource geschützt wird. Durch Angabe dieses Bereichs kann die Abfrage effizienter werden.

Anforderung senden

Fordern Sie die Ressource mit der Methode .send() an. Geben Sie eine WLResponseListener-Klasseninstanz an:

request.send(new WLResponseListener(){
  public void onSuccess(WLResponse response) {
    Log.d("Success", response.getResponseText());
  }
  public void onFailure(WLFailResponse response) {
    Log.d("Failure", response.getResponseText());
  }
});

Parameter

Bevor Sie Ihre Anforderung senden, können Sie nach Bedarf Parameter hinzufügen.

Pfadparameter

Pfadparameter (/path/value1/value2) werden - wie bereits erläutert - während der Erstellung des WLResourceRequest-Objekts festgelegt:

URI adapterPath = new URI("/adapters/JavaAdapter/users/value1/value2");
WLResourceRequest request = new WLResourceRequest(adapterPath,WLResourceRequest.GET);

Abfrageparameter

Wenn Sie Abfrageparameter (/path?param1=value1...) senden möchten, verwenden Sie für die einzelnen Parameter die Methode setQueryParameter:

request.setQueryParameter("param1","value1");
request.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:

request.setQueryParameter("params","['value1', 'value2']");

Dieses Array sollte mit WLResourceRequest.GET verwendet werden.

Formularparameter

Wenn Sie im Hauptteil Formularparameter senden möchten, verwenden Sie .send(HashMap<String, String> formParameters, WLResponseListener) anstelle von .send(WLResponseListener):

HashMap formParams = new HashMap();
formParams.put("height", height.getText().toString());
request.send(formParams, new MyInvokeListener());

Parameter - 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:

formParams.put("params", "['value1', 'value2']");

Dieses Array sollte mit WLResourceRequest.POST verwendet werden.

Headerparameter

Wenn Sie einen Parameter als HTTP-Header senden möchten, verwenden Sie die API .addHeader():

request.addHeader("date", date.getText().toString());

Weitere angepasste Hauptteilparameter

  • Mit .send(requestBody, WLResponseListener listener) können Sie im Hauptteil eine beliebige Zeichenfolge festlegen.
  • Mit .send(JSONStore json, WLResponseListener listener) können Sie im Hauptteil ein beliebiges Verzeichnis festlegen.
  • Mit .send(byte[] data, WLResponseListener listener) können Sie im Hauptteil ein beliebiges Byte-Array festlegen.

Antwort

Das Objekt response enthält die Antwortdaten. Über die Methoden und Eigenschaften dieses Objekts können Sie die erforderlichen Informationen abrufen. Gängige Eigenschaften sind responseText (String), responseJSON (JSON Object) (wenn die Antwort im JSON-Format vorliegt) und status (Int) (HTTP-Status der Antwort).

Verwenden Sie die Objekte WLResponse response und WLFailResponse response, um die vom Adapter abgerufenen Daten zu erhalten.

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:

WLResourceRequest request = new WLResourceRequest(url,WLResourceRequest.GET, backendServiceName, timeout);
  • 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
var request = new WLResourceRequest('cities',
  	WLResourceRequest.GET,'resorts',3000);

Weitere Informationen

Weitere Hinweise zu WLResourceRequest finden Sie in den API-Referenzinformationen.

Beispielanwendung

Beispielanwendung

Das Projekt ResourceRequestAndroid enthält eine native Android-Anwendung, die mit einem Java-Adapter eine Ressourcenanforderung absetzt.
Das Adapter-Maven-Projekt enthält den beim Aufrufen der Ressourcenanforderung verwendeten Java-Adapter.

Klicken Sie hier, um das Android-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.
Last modified on June 22, 2020