Si hay un término que lleva años en boca de todos los programadores es, sin duda, la palabra “integración”.
En un mundo ideal todo el software debería poder conectarse con el resto de aplicaciones que nos rodean.
Para hacer más factible esta idea solemos incorporar a las aplicaciones un API que expone sus datos y funcionalidades.
Hasta ahora en Velneo hemos programado el consumo de servicios web usando la clase XmlHttpRequest en JavaScript.
Pero a los programadores de Velneo lo que verdaderamente nos gusta es programar con código nativo y aprovecharnos de todas sus ventajas.
Te presentamos el nuevo objeto Consumo Servicio Web para que te olvides de JavaScript a la hora de integrarte con cualquier aplicación o servicio.
Este nuevo objeto cuenta con un conjunto de funcionalidades totalmente configurables y parametrizables con las que podrás conectarte a cualquier Web Service dentro de cualquier proceso, función o manejador de evento.
Observarás que prácticamente todos los parámetros del objeto son de tipo fórmula, lo que implica que vas a poder personalizarlos en tiempo de ejecución.
Cuando creas el objeto, automáticamente se crearán variables locales que serán alimentadas en tiempo de ejecución. Por lo que dispondrás en tiempo real de datos como el status, la respuesta y si hay un error.
Podrás configurar la URL con una fórmula.
Podrás usar cualquier método, GET, POST, PUT o DELETE.
Hacer la petición síncrona o asíncrona.
Recibir el body en modo texto o binario. En caso de ser binario puedes guardarlo automáticamente en una senda de disco o en una variable alfabética en formato base64.
Se soportan WebServices que requieran certificado en el cliente.
Podrás configurar qué proceso se ejecutará automáticamente al recibir la respuesta.
Como subobjetos del objeto consumo servicio web podrás declarar tantos parámetros como necesites, indicando su clave, valor y senda para valor binario, además podrás configurar con una fórmula si el parámetro está o no activo.
También podrás declarar los subobjetos que necesites de tipo cabecera con su clave, valor y condición de activo.
Además de las variables locales que se crean por defecto, puedes añadir las especiales para obtener el body en texto o en base 64 en caso de que sea una respuesta binaria. Estas variables no se crean por defecto para no recargar el consumo de memoria si no es necesario.
Lo mejor de todo es que una vez que has creado el objeto consumo web podrás ejecutarlo desde cualquier plano y cualquier componente: cliente o servidor con el comando de instrucción “Disparar objeto”.
Con un único objeto consumo servicio web vas a poder consumir múltiples endpoints gracias a la posibilidad de pasar las variables con las que resolverás las parámetros en tiempo de ejecución.
Si ejecutamos un objeto consumo servicio web en el cliente y es Asíncrono, el proceso de respuesta se ejecutará automáticamente en 2º plano evitando que la interfaz del usuario se bloquee.
Cuando definimos en el objeto el proceso que ejecutará la respuesta. Si editamos dicho proceso podremos ver que en el botón de alta de subobjetos ahora nos aparece una nueva opción llamada variables especiales que creará automáticamente las mismas variables que se declaran en el propio objeto consumo servicio web.
Cuando el objeto recibe la respuesta y llama al proceso configurado para procesarla le alimenta todas las variables que tengan el mismo identificador, tanto las especiales del objeto como aquellas que hayamos creado manualmente y existan en ambos objetos. Esto simplifica la programación ya que no tenemos que hacer nada para disponer de toda la información.
Como ejemplo de lo fácil que es el uso de este objeto y lo sencillo que es migrar los scripts de JavaScripts, encontrarás que ahora la plantilla Velneo vERP y todos los componentes del ecosistema que hacían llamadas a servicios web, ahora hacen uso del nuevo objeto Consumo Servicio Web.
Ya lo sabes, deja de usar JavaScript para consumir servicios web y aprovecha las enormes ventajas del código nativo, como la refactorización, los inspectores y buscadores, e integra este nuevo objeto en tus buenas prácticas de programación.