AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

¡Nueva funcionalidad de WINDEV Mobile 28!
  • 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.
Duración de la lección

Tiempo estimado: 10 min
Lección anteriorTabla de contenidoSiguiente lección
Presentación
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.
    1. Vaya a la página de inicio de WINDEV Mobile (Ctrl + <).
    2. 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)".
    3. 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)".
Importar un Webservice
  • Para importar un Webservice al proyecto:
    1. En la pestaña "Proyecto", en el grupo "Proyecto", despliegue "Importar" y seleccione "Un Webservice".
    2. El asistente de importación se abre automáticamente. Pase a la etapa siguiente.
    3. 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.
      Asistente para importar un Webservice
    4. Pase a la etapa siguiente. El Webservice se ha importado correctamente.
      Importación finalizada
    5. Valide la ventana de información. El Webservice importado se encuentra en la carpeta "Webservices importados" del panel "Explorador de proyectos".
    6. 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":
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:
Llamada a la función
Consumir un Webservice
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:
    1. Abra la ventana interna "IW_Product" en el editor (haga doble clic en ella en el panel "Explorador de proyectos").
    2. Reduzca el ancho del control "Reorder".
    3. Elimine el control "Quantity".
    4. Agregue un control Botón:
      • En la pestaña "Creación", en el grupo "Controles frecuentes", haga clic en Crear un control Botón.
      • Haga clic en la ventana junto al control "Reorder.".
      • El control se crea automáticamente.
    5. Modifique las características del control (seleccione "Descripción" en el menú contextual). Defina "BTN_Stock" como nombre y "Stock" como título.
      Posición del botón 'Stock'
    6. Abra los eventos asociados al control (seleccione "Código" en el menú contextual).
    7. 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.
    8. Cierre el editor de código y guarde la ventana (Guardar ventana o Ctrl + S).
    9. Cierre la ventana interna "IW_Product".
  • Vamos a probar el Webservice:
    1. Abra la ventana WIN_Advanced_LIST_Products (pulse CTRL + E, por ejemplo).
    2. Pruebe la ventana (haga clic en Probar ventana en los botones de acceso rápido).
    3. Haga doble clic en un producto: la ficha del producto se abre.
    4. Haga clic en "Stock".
      Test del Webservice
    5. 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.
    1. Vuelva al editor y abra el código del control BTN_Stock.
    2. Defina el código existente como comentario (seleccione las líneas de código y pulse Ctrl + //).
    3. 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.
    4. Cierre el editor de código y guarde la ventana (Guardar ventana o Ctrl + S).
  • Vamos a probar el Webservice:
    1. Si es necesario, abra la ventana WIN_Advanced_LIST_Products (pulse CTRL + E, por ejemplo).
    2. Pruebe la ventana (haga clic en Probar ventana en los botones de acceso rápido).
    3. Haga doble clic en un producto: la ficha del producto se abre.
    4. Haga clic en "Stock".
    5. Valide la ventana de información y cierre el simulador.
Lección anteriorTabla de contenidoSiguiente lección
Versión mínima requerida
  • Versión 28
Comentarios
Haga clic en [Agregar] para publicar un comentario