/
Cómo disponibilizar un servicio externo como una API del Flow Engine

Cómo disponibilizar un servicio externo como una API del Flow Engine

Introducción

En este tutorial se expone un ejemplo en el que se disponibiliza un servicio externo creando una API REST desde el Flow Engine.

Antes de comenzar

Antes de comenzar hay que tener en cuenta varios elementos de la petición que se deberán procesar.

  1. Headers: Los encabezados deberán ser procesados, por ejemplo, en el caso de un cambio de token OAuth. Es muy importante eliminar el header X-OP-APIKey para no exponer el token personal a servicios externos (msg.req.headers).

  2. Params: Los parámetros deberán ser fijados al crear el endpoint de la API, y procesados después de la forma correcta.

  3. Body: El body deberá ser obtenido y enviado de la forma correcta.

Nodos

Para este tipo de flujos, se utilizarán los siguientes nodos principalmente:

Nodos para la creación de la API REST:

Una explicación más profunda de estos nodos se puede encontrar en el tutorial Creación de API con el FlowEngine.

 

Nodos de petición al servicio externo:

Para realizar peticiones HTTP a un servicio externo se utiliza el siguiente nodo, normalmente precedido de una función que procesa el mensaje recibido en el endpoint de la API, y formatea ese mensaje para realizar la petición al servicio externo.

Creación del flujo

En este tutorial, vamos a servir el servicio que nos da información de las personas que están en el espacio en este momento (Open Notify (personas en el espacio y posición de la ISS)).

Primero, crea un dominio. En este caso, se utiliza el usuario analytics, por lo que el dominio será analyticsDomain.

Al visualizar el dominio, puedes editar el flujo, donde se crea la API REST y los endpoints de los dos servicios a exponer.

El esquema básico de una API es el siguiente, donde a continuación se insertarán las funciones y llamadas a los endpoints externos.



Cuando se despliegua, esto genera una API con dos endpoints (vista del swagger):

Ahora se introduce una función para eliminar los headers (que contienen X-OP-APIKey y que no son necesarios para el endpoint externo, además son una amenaza de seguridad porque pueden exponer el token al exterior).

Una vez desplegado, ya están las API REST listas para su uso. Se muestra un ejemplo de utilización:

Y la respuesta del servicio:

 

Related content