|
- Esta lección abarcará los siguientes temas
- Presentación
- Ejemplo práctico
- Importar un Webservice
- Consumir un Webservice
- Consumir un Webservice REST
Lección 4.7. Consumir un Webservice Esta lección abarcará los siguientes temas - Presentación.
- Importar y consumir un Webservice.
- Consumir un Webservice REST.
En la mayoría de los casos, un Webservice 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. | | |  | Nota | Con WINDEV Mobile, no es necesario ser un experto. ¡Un asistente se encarga de "casi" todo! |
Ejemplo práctico Un Webservice específico de este tutorial le permitirá probar las diferentes operaciones que se pueden realizar en un Webservice. Al integrar el Webservice 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 Webservice 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. - Para seguir esta lección, abra el proyecto "WM Product Management" en el que trabajó en la lección anterior.
- Vaya a la página de inicio de WINDEV Mobile (Ctrl + <).
- En la página de inicio, haga clic en "Tutorial", luego en "Part 4 - Development of an Android/iOS application", haga doble clic en "Android/iOS product management (Exercise)".
- Un cuadro de diálogo le pide que abra el proyecto en el que trabajó en la lección anterior. Puede abrir la copia local o el proyecto original. Seleccione "Abrir la copia local".
| | |  | Corregido | Hay un proyecto corregido disponible. Este proyecto contiene las ventanas que crearemos en esta lección. Para abrir el proyecto corregido, vaya a la página de inicio y haga clic en "Tutorial", luego en "Part 4 - Development of an Android/iOS application", haga doble clic en "Android/iOS product management (Answers)". |
- Para importar un Webservice al proyecto:
- En la pestaña "Proyecto", en el grupo "Proyecto", despliegue "Importar" y seleccione "Un Webservice".
- 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 Webservice:
https://examples.webdev.info/WSTUTORIALV2_WEB/awws/WSTutorialV2.awws?wsdl
Recordatorio: El Webservice permite consultar la base de datos de un proveedor para comprobar las existencias de un producto utilizando su referencia.
- Pase a la etapa siguiente. El Webservice se ha importado correctamente.
- Valide la ventana de información. El Webservice importado se encuentra en la carpeta "Webservices importados" del panel "Explorador de proyectos".
- En el panel "Explorador de proyectos", despliegue la carpeta "Webservices importados".
Veamos más de cerca los elementos que se muestran en el panel "Explorador de proyectos": La estructura contiene: - el nombre del Webservice (WSTutorialV2, en este ejemplo),
- el nombre de cada función (ProductInStock, en este ejemplo).
Para ver la sintaxis de llamada del Webservice, 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:
En nuestro ejemplo "WM Product Management", integraremos la llamada al Webservice 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 Webservice. - Para utilizar el Webservice:
- 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":
// Display SOAP Webservice response 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 Webservice. 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".
- Vamos a probar el Webservice:
- 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 Webservice REST En nuestro ejemplo, consumimos un Webservice SOAP. Ahora vamos a consumir un Webservice REST. En este caso, no es necesario importar el Webservice a la aplicación. Solo necesita llamar al procedimiento del Webservice deseado. En nuestro ejemplo, hemos implementado un Webservice REST que realiza el mismo proceso que el Webservice SOAP utilizado anteriormente. Este Webservice 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>
- Veamos cómo utilizar el Webservice 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:
// Display REST Webservice response h is httpRequest h.Method = httpGet h.URL = "https://examples.webdev.info/product/" + EDT_Reference h.ContentType = "application/json" r is restResponse = RESTSend(h) Content is ANSI string IF r.StatusCode = 200 THEN // Request successfully completed 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 Webservice REST. Las propiedades de esta variable son:
- El método utilizado: GET en este caso.
- La URL de llamada al Webservice: 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).
- Vamos a probar el Webservice:
- 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.
|
|
|
|
|
|
|