Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

En este tutorial vamos a explicar cómo orquestar operaciones de APIs REST desde el FlowEngine de la plataforma.

Con el nuevo nodo "OnesaitPlatform Rest API invoker" vamos a poder invocar a las distintas operaciones dadas de altas en el API Manager.

Veamos como podemos usar dicho nodo. Para ello seguiremos los siguientes pasos:

  1. Seleccionamos la opción "FlowEngine Management" del menú:



  2. Seleccionamos el dominio perteneciente a nuestro usuario:



  3. Una vez estamos dentro del dominio, arrastramos un nodo de tipo "OnesaitPlatform Rest API invoker" al flujo y hacemos doble click en él para ver sus propiedades.

    1. Name: Nombre que mostrará el nodo en el flujo.
    2. REST APIs available: Listado de APIs que nuestro usuario tiene disponibles. Una vez seleccionada una API se rellenarán automáticamente los campos "REST API" y "REST API Version".
    3. Operations available: Listado de operaciones de la API seleccionada. Una vez seleccionada una operación se rellenarán automáticamente los campos "REST API Operation" y "Operation Method".
    4. Timeout: Tiempo en milisegundos que el nodo esperará para obtener respuesta de la operación invocada. En caso de que el tiempo de ejecución sea superior al indicado, se mostrará un error de "Connection timeout".
    5. Operation input params: Esta es una lista dinámica que mostrará todos los parámetros (path, query, body, header o multipart) necesarios por la operación que hayamos seleccionado. Hay dos maneras de pasar los valores a dichos parámetros:



      1. msg. : A través del contenido de un campo del mensaje (msg) recibido del nodo predecesor. Por Ejemplo:



        En este modo, se permite el uso de operadores para acceder a posiciones dentro de un array o un mapa, como podría ser:

        1. Array: msg.payload[0].id

        2. Mapa: msg.pet[garfield].  Nótese en este caso que el literal que actúa como clave del mapa no tiene comillas.

      2. String: A través de un valor estático que podremos meter a mano. Por ejemplo:



        NOTA: En el caso de que uno de los parámetros sea un fichero (multipart/form-data), el valor debe de ir en un campo del mensaje recibido, siguiendo la estructura:

                
                
                


                El buffer es el mismo que devuelve por ejemplo el nodo "File in"  de la paleta de nodos por defecto de Node-RED, por ejemplo:

                

  4. Una vez terminemos de rellenar los campos requeridos veremos que la cantidad de salidas del nodo varía de una a varias. Cada salida del nodo representará un statusCode que la operación tenga definida. Además se añadirá una salida extra (etiquetada como "???- Other status code") por donde nos llegarán los mensajes con statusCode distinto del resto de salidas. Si colocamos el cursor sobre las patillas de salida, veremos el statusCode y una descripción:

  5. Tras seleccionar nuestra operación a invocar, guardaremos los cambios haciendo click en el botón "deploy":



  6. En cuanto a la respuesta generada por el nodo, seguirá la siguiente estructura:

    1. msg.statusCode: Código de retorno de la operación de la API o del propio nodo invocador en caso de error en la inserción de parámetros.
    2. msg.payload: Respuesta (body response) de la operación. Siempre se intentará parsear a objeto. En caso de no ser posible (dependerá de la operación de la API seleccionada) se mantendrá como un String.




  • No labels