|
|
|
|
|
- Lección 7 - Consumir un servicio web
- Presentación
- Ejemplo práctico
- Importar un servicio web SOAP
- Consumir un servicio web SOAP
- Llamar al servicio web
- Probar el servicio web
- Consumir un servicio web REST
- Llamar al servicio web REST
- Probar la llamada al servicio web REST
- En resumen
Tutorial - Desarrollar una aplicación Android e iOS
Lección 7 - Consumir un servicio web Abordaremos los siguientes temas: - Presentación.
- Importar y consumir un servicio web.
- Consumir un servicio web REST.
10 min En la mayoría de los casos, un servicio web es una aplicación a la que se puede acceder a través de protocolos estándar de Internet. Los servicios Web permiten que varios equipos conectados a través de Internet interactúen entre sí. A través de los servicios Web, se pueden ejecutar procedimientos y procesos en un servidor Web remoto (.NET, SOAP o J2EE) desde un equipo cliente. Con WINDEV Mobile, estos servicios Web pueden utilizarse como cliente, a través del protocolo SOAP en HTTP (el protocolo estándar de Internet para la transferencia de páginas HTML) y con las funciones SOAPxx, DotNetxx y J2EExx. Independientemente de la plataforma del servidor Web (.NET, J2EE, etc.), se puede acceder a un servicio Web mediante el protocolo SOAP. Con WINDEV Mobile, no es necesario ser un experto. ¡Un asistente se encarga de "casi" todo! Ejemplo práctico Un servicio web específico de este tutorial le permitirá probar las diferentes operaciones que se pueden realizar en un servicio web. Al integrar el servicio web en el proyecto "WM Product Management", se puede consultar una base de datos de proveedores para comprobar si un producto está disponible utilizando su referencia. Primero, importaremos el servicio web en el proyecto "WM Product Management", y luego lo utilizaremos en la aplicación para comprobar la disponibilidad del producto a través de una ficha de producto.
Advertencia
Esta lección se basa en el ejemplo WM Product Management utilizado en la lección 1. Para seguir esta lección, debe haber completado los pasos de las lecciones anteriores.
Importar un servicio web SOAP Para importar un servicio web al proyecto: - En la pestaña "Proyecto", en el grupo "Proyecto", despliegue "Importar" y seleccione "Un servicio web".
- El asistente de importación se abre automáticamente. Pase a la etapa siguiente.
- Especifique la dirección a la que debe importarse la descripción WSDL del servicio web:
https://examples.webdev.info/WSTUTORIALV2_WEB/awws/WSTutorialV2.awws?wsdl Recordatorio: El servicio web permite consultar la base de datos de un proveedor para comprobar las existencias de un producto utilizando la referencia.
- Pase a la etapa siguiente. El servicio web se ha importado correctamente.
- Valide la ventana de información. El servicio web importado se encuentra en la carpeta "Servicios web importados" del panel "Explorador de proyectos".
- En el panel "Explorador de proyectos", despliegue la carpeta "Servicios web importados".
Veamos más de cerca los elementos que se muestran en el panel "Explorador de proyectos": La estructura contiene: - el nombre del servicio web (WSTutorialV2, en este ejemplo),
- el nombre de cada función (ProductInStock, en este ejemplo).
Para ver la sintaxis de llamada del servicio web, haga doble clic en el nombre de la función en el panel "Explorador de proyectos". El editor de código muestra la descripción de la función, con el prototipo para llamar a la función:
Consumir un servicio web SOAP En nuestro ejemplo "WM Product Management", integraremos la llamada al servicio web en la ventana interna que muestra los detalles del producto. Vamos a crear un botón "Stock" para comprobar la disponibilidad del producto a través del servicio web. Llamar al servicio web Para utilizar el servicio web: - Abra la ventana interna "IW_Product" en el editor (haga doble clic en ella en el panel "Explorador de proyectos").
- Reduzca el ancho del control "Reorder".
- Elimine el control "Quantity".
- Agregue un control Botón:
- En la pestaña "Creación", en el grupo "Controles frecuentes", haga clic en .
- Haga clic en la ventana junto al control "Reorder".
- El control se crea automáticamente.
- Modifique las características del control (seleccione "Descripción" en el menú contextual). Defina "BTN_Stock" como nombre y "Stock" como título.
- Abra los eventos asociados al control (seleccione "Código" en el menú contextual).
- Escriba el siguiente código WLanguage en el evento "Clic en BTN_Stock":
InfoBuild("Number of ""%1"" products in stock: %2", EDT_Reference, ...
ProductInStock(EDT_Reference))
Analicemos este código:- Se llama a la función ProductInStock del servicio web. Este código utiliza el prototipo de la función que se mostró anteriormente en el editor de código.
- La respuesta se muestra en un mensaje.
- Cierre el editor de código y guarde la ventana ( o Ctrl + S).
- Cierre la ventana interna "IW_Product".
Probar el servicio web Vamos a probar el servicio web: - Abra la ventana WIN_Advanced_LIST_Products (pulse CTRL + E, por ejemplo).
- Pruebe la ventana (haga clic en en los botones de acceso rápido).
- Haga doble clic en un producto: la ficha del producto se abre.
- Haga clic en "Stock".
- Valide la ventana de información y cierre el simulador.
Consumir un servicio web REST En nuestro ejemplo, consumimos un servicio web SOAP. Ahora vamos a consumir un servicio web REST. En este caso, no es necesario importar el servicio web a la aplicación. Solo necesita llamar al procedimiento del servicio web deseado. En nuestro ejemplo, hemos implementado un servicio web REST que realiza el mismo proceso que el servicio web SOAP utilizado anteriormente. Este servicio web REST puede utilizarse para obtener información sobre las existencias del producto especificado utilizando la siguiente dirección: https://examples.webdev.info/product/<Product reference> Llamar al servicio web REST Veamos cómo utilizar el servicio web REST en nuestro ejemplo. - Vuelva al editor y abra el código del control BTN_Stock.
- Defina el código existente como comentario (seleccione las líneas de código y pulse Ctrl + //).
- Escriba el siguiente código:
h is httpRequest
h.Method = httpGet
h.URL = "https://examples.webdev.info/product/" + EDT_Reference
h.ContentType = "application/json"
r is httpResponse = RESTSend(h)
Content is ANSI string
IF r.StatusCode = 200 THEN
Content = r.Content
Info(Content)
ELSE
Info("An error has occurred " + ErrorInfo() + r.StatusCode + r.DescriptionStatusCode)
END
Este código permite: - Declarar una variable de tipo httpRequest. Esta variable define los parámetros de la consulta enviada al servicio web REST. Las propiedades de esta variable son:
- El método utilizado: GET en este caso.
- La URL de llamada al servicio web: en este caso, la URL que presentamos anteriormente. En este ejemplo, la referencia del producto corresponde al valor del control EDT_Reference.
- El tipo de contenido del mensaje HTTP que se enviará al servidor. En este caso, el mensaje está en formato JSON.
- Enviar la solicitud al servidor y obtener la respuesta utilizando la función RESTSend. La respuesta es una variable de tipo restResponse.
- Definir el formato de la respuesta.
- Cierre el editor de código y guarde la ventana ( o Ctrl + S).
Probar la llamada al servicio web REST Vamos a probar el servicio web: - Si es necesario, abra la ventana WIN_Advanced_LIST_Products (pulse CTRL + E, por ejemplo).
- Pruebe la ventana (haga clic en en los botones de acceso rápido).
- Haga doble clic en un producto: la ficha del producto se abre.
- Haga clic en "Stock".
- Valide la ventana de información y cierre el simulador.
Proyecto completado ¿Desea comprobar el resultado final de las etapas descritas en este tutorial?
Hay un proyecto completado disponible. Este proyecto contiene las ventanas y los reportes creados y utilizados en esta lección. Para abrir el proyecto completado, vaya a la página de inicio y haga clic en "Tutorial", luego en "Tutorial - Develop an Android/iOS application", haga doble clic en "Android/iOS product management - Answers". En esta lección, vimos cómo manipular servicios web SOAP y REST. Hemos terminado el tutorial de desarrollo de aplicaciones móviles. Para obtener más información sobre WINDEV Mobile, consulte las siguientes páginas de documentación:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|