Solicitud de recursos desde aplicaciones JavaScript (Cordova, Web)

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 y WLResourceRequest.DELETE.

var resourceRequest = new WLResourceRequest(
    "/adapters/JavaAdapter/users",
    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.

Envío de la solicitud

Solicitud de recurso utilizando el método send().

El método send() toma un parámetro opcional, que puede ser un objeto JSON o una serie de texto simple, establece un cuerpo con la solicitud HTTP .

Utilización de promesas para definir funciones de devolución de llamada onSuccess y onFailure.

resourceRequest.send().then(
    onSuccess,
    onFailure
)

setQueryParameter

Mediante la utilización del método setQueryParameter, puede incluir parámetros de consulta (URL) en la solicitud REST.

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

Nota: El valor params debería ser una representación de serie de una matriz.

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

Se debería utilizar con WLResourceRequest.GET.

setHeader

Mediante la utilización del método setHeader, puede establecer una nueva cabecera HTTP o sustituir una cabecera existente con el mismo nombre en la solicitud REST.

resourceRequest.setHeader("Header-Name","value");

sendFormParameters(json)

Para enviar parámetros de formulario codificados de URL, utilice en su lugar el método sendFormParameters(json). Este método convierte JSON en una serie codificada de URL, establece content-type en application/x-www-form-urlencoded y lo establece como un cuerpo HTTP:

var formParams = {"param1": "value1", "param2": "value2"};
resourceRequest.sendFormParameters(formParams);

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:

var formParams = {"params":"['value1', 'value2']"};

Esto se debería utilizar con WLResourceRequest.POST.

Para obtener más información sobre WLResourceRequest, consulte la referencia de API en la documentación del usuario.

La respuesta

Tanto la llamada de devolución onSuccess como onFailure reciben un objeto response. El objeto response contiene los datos de respuesta. Utilice todas sus propiedades para recuperar la información necesaria. Las propiedades utilizadas habitualmente son responseText, responseJSON (objeto JSON, si la respuesta está en JSON) y status (el estado HTTP de la respuesta).

En caso de una respuesta anómala, el objeto response también contiene la propiedad errorMsg.

Dependiendo de su utiliza un adaptador Java o JavaScript, la respuesta puede contener otras propiedades como, por ejemplo, responseHeaders, responseTime, statusCode, statusReason y 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
}

Manejo de la respuesta

El objeto response lo reciben las funciones de devolución de llamada onSuccess y onFailure.

Por ejemplo:

onSuccess: function(response) {
    resultText = "Successfully called the resource: " + response.responseText;
},

onFailure: function(response) {
    resultText = "Failed to call the resource:" + response.errorMsg;
}

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

Aplicaciones de ejemplo

Los proyectos ResourceRequestWeb y ResourceRequestCordova demuestran una solicitud de recurso mediante un adaptador Java.

El proyecto Maven de adaptador contiene el adaptador Java utilizado durante la llamada de solicitud de recurso.

Pulse para descargar el proyecto de Cordova.

Pulse para descargar el proyecto de web.

Pulse para descargar el proyecto Maven del adaptador.

Uso de ejemplo

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

Last modified on November 08, 2017