Solicitud de recursos de aplicaciones Ionic
improve this page | report issueVisió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:
- Si está implementando una aplicación Ionic, asegúrese de que ha añadido el Mobile Foundation SDK a su aplicación de Ionic.
- Aprenda a crear adaptadores.
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}
. Laví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 .
Utilizando promises de TypeScript, puede definir funciones de devolución de llamada Success
y Failure
.
resourceRequest.send().then(
(response) => {
// Success
},
(error) => {
// Failure
}
)
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 una propiedad errorMsg
.
Dependiendo de si 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 de respuesta lo reciben las funciones de devolución de llamada Success
y Failure
.
Por ejemplo:
resourceRequest.send().then(
(response) => {
resultText = "Successfully called the resource: " + response.responseText;
},
(error) => {
resultText = "Failed to call the resource:" + response.errorMsg;
}
)
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
var options = { timeout, backendServiceName}
WLResourceRequest request = new WLResourceRequest(url,WLResourceRequest.GET, options);
- 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.
Para obtener más información
Para obtener más información acerca de
WLResourceRequest
, consulte la Referencia de API.
Aplicaciones de ejemplo
El proyecto ResourceRequestIonic demuestra 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 Ionic.
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.