Solicitud de recursos de aplicaciones Android

improve this page | report issue

Visión general

Las aplicaciones MobileFirst pueden acceder a los recursos utilizando la API REST WLResourceRequest.
La API REST funciona con todos los adaptadores y recursos externos.

Requisitos previos:

WLResourceRequest

La clase WLResourceRequest maneja solicitudes de recursos para recursos externos o adaptadores.

Cree un objeto WLResourceRequest y especifique la vía de acceso al recurso y el método HTTP.
Los métodos disponibles son: WLResourceRequest.GET, WLResourceRequest.POST, WLResourceRequest.PUT, WLResourceRequest.HEAD y WLResourceRequest.DELETE.

URI adapterPath = URI.create("/adapters/JavaAdapter/users");
WLResourceRequest request = new WLResourceRequest(adapterPath,WLResourceRequest.GET);
  • Para adaptadores JavaScript, utilice /adapters/{AdapterName}/{procedureName}
  • Para adaptadores Java, utilice /adapters/{AdapterName}/{path}. La vía de acceso depende de la forma en que haya definido sus anotaciones @Path en su código Java. También debería incluir todos los @PathParam que utilice.
  • Para acceder a recursos fuera del proyecto, utilice el URL completo según los requisitos del servidor externo.
  • timeout: Opcional, tiempo de espera de la solicitud en milisegundos.
  • scope: Opcional, ámbito que está protegiendo el recurso. Si especifica este ámbito, podría hacer que la solicitud fuese más eficiente.

Envío de la solicitud

Solicite el recurso mediante el método .send(). Especifique una instancia de clase WLResponseListener:

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

Parámetros

Antes de enviar su solicitud, podría desea añadir parámetros según sea necesario.

Parámetros de vía de acceso

Tal como se ha explicado anteriormente, los parámetros de vía de acceso (/path/value1/value2) se establecen durante la creación del objeto WLResourceRequest:

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

Parámetros de consulta

Para enviar parámetros de consulta (/path?param1=value1...) utilice el método setQueryParameter para cada parámetro:

request.setQueryParameter("param1","value1");
request.setQueryParameter("param2","value2");

Adaptadores JavaScript

Los adaptadores JavaScript utilizan parámetros sin nombre ordenados. Para pasar parámetros a un adaptador JavaScript, establezca una matriz de parámetros con el nombre params:

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

Se debería utilizar con WLResourceRequest.GET.

Parámetros de formulario

Para enviar parámetros de formulario en el cuerpo, utilice .send(HashMap<String, String> formParameters, WLResponseListener) en lugar de .send(WLResponseListener):

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

Parámetros - adaptadores JavaScript

Los adaptadores JavaScript utilizan parámetros sin nombre ordenados. Para pasar parámetros a un adaptador JavaScript, establezca una matriz de parámetros con el nombre params:

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

Esto se debería utilizar con WLResourceRequest.POST.

Parámetros de cabecera

Para enviar un parámetro como una cabecera HTTP utilice la API .addHeader():

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

Otros parámetros de cuerpo personalizados

  • .send(requestBody, WLResponseListener listener) permite establecer una serie arbitraria en el cuerpo.
  • .send(JSONStore json, WLResponseListener listener) permite establecer un diccionario arbitrario en el cuerpo.
  • .send(byte[] data, WLResponseListener listener) permite establecer un matriz de bytes arbitraria en el cuerpo.

La respuesta

El objeto response contiene los datos de respuesta. Utilice todos sus métodos y propiedades para recuperar la información necesaria. Las propiedades utilizadas habitualmente son responseText (String), responseJSON (objeto JSON) (si la respuesta está en JSON) y status (Int) (el estado HTTP de la respuesta).

Utilice los objetos WLResponse response y WLFailResponse response para obtener los datos recuperados desde el adaptador.

Utilización de WLResourceRequest para acceder a microservicios externos

La API WLResourceRequest se puede utilizar para que las aplicaciones móviles accedan a los microservicios alojados fuera de Mobile Foundation. Mobile Foundation facilita las llamadas seguras al microservicio o el servicio de fondo de la empresa sin requerir adaptadores mediante API Connector de Mobile Foundation. Del mismo modo que un adaptador, API Connector garantiza invocaciones seguras basadas en el mecanismo OAuth 2.0 de Mobile Foundation. Con API Connector, el administrador de Mobile Foundation puede configurar y desplegar los detalles del microservicio o del servicio de fondo de la empresa en Mobile Foundation. El tiempo de ejecución de Mobile Foundation utiliza la configuración desplegada para invocar de forma segura las solicitudes de microservicio o del servicio de fondo desde la aplicación móvil.

Aprenda a configurar API Connector de Mobile Foundation.

Para acceder a un URL de microservicio, tal como “http://mybluemix.net/resorts/cities”, y al servicio de fondo del tiempo de ejecución de Mobile Foundation, la configuración es la siguiente

{
  "service": "resorts",
  "baseUrl":"http://mybluemix.net/resorts"
}

WLResourceRequest se puede definir como

WLResourceRequest request = new WLResourceRequest(url,WLResourceRequest.GET, backendServiceName, timeout);
  • url: URL relativo del punto final de microservicio. Por ejemplo: cities
  • method: El método HTTP que se ha de utilizar. Por ejemplo: WLResourceRequest.GET
  • backendServiceName: El nombre del servicio de fondo configurado en el servidor desde el que se capturan los datos. Por ejemplo, resorts.
  • timeout: El tiempo de espera en milisegundos para esta solicitud.
var request = new WLResourceRequest('cities',
  	WLResourceRequest.GET,'resorts',3000);

Para obtener más información

Para obtener más información sobre WLResourceRequest, consulte la Referencia de API.

Imagen de la aplicación de ejemplo

Aplicación de ejemplo

El proyecto ResourceRequestAndroid contiene una aplicación Android nativa que realiza una solicitud de recurso mediante un adaptador de Java.
El proyecto Maven de adaptador contiene el adaptador Java utilizado durante la llamada de solicitud de recurso.

Pulse para descargar el proyecto de Android.
Pulse para descargar el proyecto Maven del adaptador.

Uso de ejemplo

Siga el archivo README.md de ejemplo para obtener instrucciones.

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 29, 2020