Consumo servicio Web
Este objeto nos permite consumir un servicio Web vía XMLHttpRequest.
Para crear un objeto de este tipo seleccionar la opción nuevo objeto/consumo servicio web del menú objetos de Velneo vDevelop o a través de la galería de objetos.
Propiedades
Identificador
Etiqueta alfanumérica que identifica al objeto. Este identificador será el que se usa para referenciarlo en los inspectores y en las propiedades de otros objetos.
Nombre
Etiqueta alfanumérica que servirá como descriptor del objeto. Es el texto que se presentará al usuario final de la aplicación para referenciar al objeto. Podemos definir una etiqueta por cada idioma presente en el proyecto.
Estilos
Privado
Limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Comentarios
Esta propiedad nos permite documentar el uso del objeto.
Url
Permite establecer la URL del servicio con el que queremos conectar. Este se establecerá mediante una fórmula que podremos escribir usando el asistente para edición de fórmulas. Para ello pulsar el botón que aparece al editar esta propiedad.
Método
Permite establecer el método HTTP a usar para conectar con el servicio Web, tal como GET, POST, etc. Este se establecerá mediante una fórmula que podremos escribir usando el asistente para edición de fórmulas. Para ello pulsar el botón que aparece al editar esta propiedad.
Asíncrono
En este parámetro estableceremos, mediante una fórmula, un valor booleano -opcional- para indicar si realizar o no la operación de forma asíncrona. Si este valor es falso, la función de envío no retorna hasta que la respuesta es recibida.
Si este valor es verdadero, el proceso de respuesta se ejecutará también de forma asíncrona.
Body
Si el objeto no tiene definidos parámetros, en esta propiedad podremos especificar, mediante una expresión fórmula, el cuerpo de la petición.
Es body binario
Si el objeto no tiene definidos parámetros, en esta propiedad podremos especificar, mediante una expresión fórmula, si el cuerpo de la petición es un binario o no. Si se deja vacío no se enviará un binario.
Senda body binario
Si el objeto no tiene definidos parámetros, y lo que vamos a enviar en el cuerpo de la petición es un binario, en esta propiedad podremos especificar, mediante una expresión fórmula, la senda de dicho binario.
Es respuesta binaria
En esta propiedad podremos especificar, mediante una expresión fórmula, si el cuerpo de la petición es un binario o no. Si se deja vacío no se esperará un binario.
Senda para guardar respuesta binaria
Si lo que vamos a recibir es un binario, en esta propiedad podremos especificar, mediante una expresión fórmula, la senda donde guardar el binario recibido.
Si la respuesta es binaria y no se especifica nada en este paráemtro, RESPONSE_TEXT contendra la respuesta en base64
Timeout
Representa el número de milisegundos que una petición puede tomar antes de ser automáticamente terminada.
Si no se especifica ningún valor, se define como valor por defecto 30 minutos.
Proceso para ejecutar la respuesta
Proceso de código nativo Velneo que recogerá la respuesta del servicio Web.
Certificado cliente
Si el servicio Web a consumir requiere certificados, en este parámetro podemos poner el contenido del certificado requerido mediante una expresión fórmula.
Senda certificado cliente
Si el servicio Web a consumir requiere certificados, en este parámetro podemos poner la senda donde tengamos guardado el certificado requerido.
El certificado debe establecerse únicamente por uno de los dos métodos.
El certificado que se utilice debe estar en formato p12.
Esta opción solamente es funcional en Windows y en Linux pero no en macOS, dado que, al contrario que en Windows y Linux que usan Open SSL, macOS usa un sistema propio llamado Secure Transport SSL, que no es funcional con este sistema. En el caso de macOS debemos especificar directamente el certificado cliente.
Clave certificado cliente
En este parámetro podemos especificar la clave del certificado mediante una expresión fórmula. Debemos especificar la clave propiamente dicha, no una senda de un fichero externo.
Senda clave certificado cliente
Si el servicio Web a consumir requiere certificados, en este parámetro podemos poner la senda donde tengamos guardado la clave del certificado requerido.
El certificado que se utilice debe estar en formato p12.
Contraseña certificado cliente
Si el certificado require passphrase, lo estableceremos en este parámetro mediante una expresión fórmula.
Ignorar errores TLS/SSL
Mediante una expresión fórmula podemos configurar permitirá configurar si se ignoran o no los errores de TLS/SSL.
En caso de ser positivo el resultado de la fórmula, el webservice será ejecutado ignorando los errores.
Por defecto se asume que no se ignoran los errores.
Este parámetro en Velneo Web no tiene efecto. No es posible ignorar los errores de TLS/SSL en el navegador ya que no lo permite.
Parámetros de consumo servicio Web
En este sub-objeto podemos definir los parámetros que se necesitan para consumir el servicio Web.
Usando los parámetros se desactiva el body y se usarán del modo siguiente:
Si el método del servcicio Web es Get, estos parámetros se añadirán a la URL.
Si el método del servcicio Web es Post, estos parámetros se enviarán como internos en el post de la URL. En este paso se aplica automáticamente: Content-Type": "application/x-www-form-urlencoded
.
Si en la URL ya teníamos declarado algún parámetro, los que definamos como sub-objetos se añadirán a éstos.
Si queremos hacer uso del body, no debemos usar parámteros y entonces tendremos que definir el body y el Content-type de forma manual por medio de las cabeceras.
Las propiedades de un parámetro son:
Identificador
Etiqueta alfanumérica que identifica al parámetro. Este identificador será el que se usa para referenciarlo en los inspectores y en las propiedades de otros objetos.
Nombre
Etiqueta alfanumérica con el nombre del parámetro.
Estilos
Privado
Limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Comentarios
Esta propiedad nos permite documentar el uso del parámetro.
Clave
En esta propiedad especificaremos, mediante una expresión fórmula, el identificador del parámetro a enviar en la petición.
Valor
Esta propiedad estará activa si lo que vamos a enviar en la petición no es un binario y nos permitirá establecer el valor del parámetro a enviar mediante una expresión fórmula.
Senda valor binario
Si el parámetro a enviar es un binario, mediante una expresión fórmula, estableceremos la senda donde lo tenemos alojado.
Condición de activo
Esta propiedad nos permite establecer una condición para el envío de un parámetro. Para ello hemos de establecer la fórmula que debe cumplirse para que el parámetro sea enviado. Si no se especifica ninguna fórmula, el parámetro se enviará siempre.
Cabeceras de consumo servicio Web
En este sub-objeto podemos definir las cabeceras que se necesitan para consumir el servicio Web.
Las propiedades de una cabecera son:
Identificador
Etiqueta alfanumérica que identifica al parámetro. Este identificador será el que se usa para referenciarlo en los inspectores y en las propiedades de otros objetos.
Nombre
Etiqueta alfanumérica con el nombre de la cabecera.
Si en un objeto consumo servicio Web creamos una cabecera CONTENT-LENGTH, tomará ésta, si no la creamos, la enviará automáticamente como cabecera calculada.
Estilos
Privado
Limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Comentarios
Esta propiedad nos permite documentar el uso de la cabecera.
Clave
En esta propiedad especificaremos, mediante una expresión fórmula, el nombre de la cabecera de la petición.
Valor
En esta propiedad especificaremos, mediante una expresión fórmula, el valor de la cabecera a enviar en la petición.
Condición de activo
Esta propiedad nos permite establecer una condición para el envío de una cabecera. Para ello hemos de establecer la fórmula que debe cumplirse para que el parámetro sea enviado. Si no se especifica ninguna fórmula, el parámetro se enviará siempre.
Variables locales del objeto
Cuando creamos un objeto de este tipo, Velneo le añade automáticamente las variables locales especiales que nos permiten almacenar los datos de la respuesta del servicio. Son las siguientes:
Recogerá el texto del mensaje de error. Se recibe el numero de error interno de QNetworkReply del XMLHttpRequest ( XMLHttpRequest.errorCode ). Ver códigos de error.
Recogerá toda la información de la respuesta en formato JSON.
Recogerá el texto de la respuesta a la llamada al servicio Web.
Recogerá el status de la llamada. Lo que se recibe es el código de error http (XMLHttpRequest.status).
En el enlace siguiente encontrarás los códigos de estado y lo que Apache devuelve:
https://ci.apache.org/projects/httpd/trunk/doxygen/group__HTTP__Status.html
Recogerá el texto del status de la llamada. Se recibe el estado http en texto (XMLHttpRequest.statusText).
Recogerá el cuerpo de la petición.
Recogerá el cuerpo de la petición cuando se trate de un binario.
Funcionamiento
Para realizar la petición al servicio Web dispararemos este objeto desde un proceso con comandos de objeto y la respuesta la obtendremos en el proceso configurado en la propiedad proceso para ejecutar la respuesta.
En las propiedades de tipo fórmula de este objeto podemos hacer uso de variables locales para poder asignarles contenido de forma dinámica con el comando de instrucción de proceso set variable local del objeto antes de dispararlo.
Para enviar un objeto binario estableceremos un 1 en la propiedad Tipo de body y estableceremos en la propiedad Senda body binario la senda del fichero donde se leerá el body. Otra posibilidad sería dejar la senda vacía y poner en base64 el body.
Para recibir un objeto binario debemos establecer un 1 en la propiedad Tipo de respuesta, establecer Senda para guardar respuesta en binario con la senda del fichero donde se escribirá la respuesta. Otra posiblidad sería dejar la senda vacía y entonces rellenará en el proceso de respuesta la variable RESPONSE_TEXT con el base64 de la respuesta.
El objeto, si bien es funcional en Velneo Web, en determinadas circunstancias pueden no ser funcional cuando el elemento al que se hace referencia no tener una configuración CORS adecuada. Ver el siguiente capítulo de la documentación.
Última actualización