Azure Logic Apps III: Creando conectores personalizados. Las API Apps


Hola a todos de nuevo,

En anteriores entradas, inicié una serie sobre las Logic Apps de Azure y lo que se podía hacer con ellas. Vimos alguno de los conectores que había disponibles por defecto y como usarlos, como configurarlos y las opciones para trabajar con arrays de datos y condiciones.

Azure Logic Apps I: Primeros Pasos

Azure Logic Apps II: ¿Qué más puedo hacer?

En la entrada de hoy, quiero seguir avanzando en conocer las opciones que nos ofrecen las Logic Apps como herramienta para crear nuestras lógicas de negocio y que nos permitan, de una forma sencilla, implementar las mismas conectando todos los servicios que utilicemos. Hoy os quiero mostrar, como podemos crear nuestros propios conectores, para ampliar la funcionalidad y posibilidades de las Logic Apps.

Para ello, vamos a introducir un nuevo servicio de los disponibles en Azure, las API Apps.

¿Qué son las API Apps?

Según la propia documentación de Azure, las API Apps ofrecen una plataforma y un ecosistema enriquecido para la compilación, el hospedaje, el uso y la distribución de las API, tanto en la nube como de forma local. Las API Apps proporcionan capacidades para desarrollar, implementar, publicar, consumir y administrar las API web de RESTful.

Éstas API Apps forman parte del Servicio de aplicaciones de Azure, que también incluye aplicaciones web, móviles y lógicas.

appservicesuite

Os dejo un enlace a la documentación de Azure de donde he extraído esta información para que podáis ampliarla si queréis

https://azure.microsoft.com/es-es/documentation/articles/app-service-api-apps-why-best-platform/

Usando las API Apps para extender los conectores de una Logic App

Las API Apps que acabamos de contar se integran de forma nativa con las Logic App, ya que que podremos usarlas como conectores. Vamos a ver como crear una Api App que podamos usar en nuestra lógica de negocio.

Creando la API App en Visual Studio 2013

Lo primero que tenemos que hacer es crear el proyecto en Visual Studio 2013. Para ello creamos un proyecto de tipo ASP.NET Web Application.

newproject1

De las opciones que nos muestran disponibles, seleccionamos la opción Azure API app (Preview).

newProject2

Esto nos crea un proyecto de tipo Web API con la siguiente estructura.

estructura

Vamos a destacar aquí el fichero apiapp.json que contiene la información de definición de nuestra API App en Azure, que podremos modificar si lo deseamos. El contenido es el siguiente:

{
"$schema": "http://json-schema.org/schemas/2014-11-01/apiapp.json#",
"id": "ExampleAPIApp",
"namespace": "microsoft.com",
"gateway": "2015-01-14",
"version": "1.0.0",
"title": "ExampleAPIApp",
"summary": "",
"author": "",
"endpoints": {
"apiDefinition": "/swagger/docs/v1",
"status": null
}
}

Para el ejemplo he creado un modelo y un controlador muy sencillos. El modelo implementa una petición y el controlador, parte de una lista de peticiones y a través del método FilterRequest, y permite filtrar esa lista de peticiones en función de la cantidad, que se recibe como parámetro. El código que he usado es el siguiente.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ExampleAPIApp.Models
{
    public class Request
    {
        public int id { get; set; }
        public string title { get; set; }
        public int quantity { get; set; }
    }
}
using ExampleAPIApp.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace ExampleAPIApp.Controllers
{
    public class RequestController : ApiController
    {
        private readonly Request[] _requests = {
                    new Request { id = 0, quantity = 6, title = "Example1" },
                    new Request { id = 1, quantity = 4, title = "Example2"},
                    new Request { id = 2, quantity = 7, title = "Example3"}
                };

        [HttpGet]
        public IEnumerable<Request> FilterRequest(int quantity)
        {
            List<Request> response = _requests.Where<Request>(r => r.quantity > quantity).ToList<Request>();

            return response;
        }
    }
}

Antes de publicar la API App que hemos creado podemos probarla de una forma muy sencilla. La integración automática de las API Apps de Azure con Swagger, un marco para la documentación interactiva y la detección de una API de RESTful que se usa de forma predeterminada en las aplicaciones de API, nos permite hacerlo a través de una interfaz gráfica. Para ello, previamente, debemos acceder al fichero de configuración de Swagger en la carpeta App_Start de nuestro proyecto y descomentar las siguiente líneas de código.

})
    .EnableSwaggerUi(c =>
{

Una vez hecho esto, si depuramos nuestra aplicación, podremos acceder a la siguiente URL que nos permite probar nuestra API App.

http://localhost:%5Bpuerto%5D/swagger

swagger

Os dejo también un enlace a la página de Swagger donde podréis encontrar más información de esta herramienta.

http://swagger.io/

Una vez comprobado el correcto funcionamiento de la API que hemos creado podemos proceder a su publicación.

Publicando la API App en Azure

Para publicar nuestra API App, hacemos click derecho sobre la solución y pulsamos en Publish. Esto nos muestra una ventana como la que se ve a continuación y que nos pide seleccionar el tipo de publicación que queremos hacer.

publish1

A continuación, tendremos que indicar la cuenta de Azure donde queremos publicar la API App. Una vez logueados, indicaremos que queremos crear una nueva API APP.

publish2

El siguiente paso, es indicar todos los parámetros para crear una API App: Plan de servicio, grupo de recursos, nivel de acceso y la región de publicación.

publish3

publish4

Tras esto, hacemos click en OK, lo que provisionará la API App. Una vez que se ha provisionado, tendremos que volver a ejecutar la opción de publicación para desplegar el código en la nueva API App que se acaba de crear.

publish5

Una vez terminado el proceso y publicada correctamente la API App, nos aparece una pantalla como la siguiente.

publish6

Ya tenemos nuestra API App creada y desplegada en Azure, a continuación vamos a crear una Logic App que la use como conector.

Creando la Logic App

La creación de la Logic App ya la hemos tratado en entradas anteriores. Por tanto seguiremos el proceso habitual para provisionar y crear la Logic App, con la única premisa que tenemos que crearla dentro del mismo plan de servicios y grupo de recursos que la API App que hemos creado anteriormente.

Captura de pantalla 2015-10-24 a las 20.10.11

Una vez que entremos al diseñador de Logic App, vemos que en el panel de conectores, aparece la API App que creamos en la sección anterior.

Captura de pantalla 2015-10-24 a las 20.11.32

Vamos a añadir dos pasos, el primero nuestra API App y luego un conector a SharePoint OnLine. Cuando añadimos el conector correspondiente a nuestra Api App, vemos que nos pide como parámetro de entrada la cantidad. Luego añadiremos el conector de SharePoint OnLine con el objetivo de añadir un elemento en una lista por cada Request devuelta por la API App.

Lo configuramos de la siguiente manera:

Captura de pantalla 2015-10-24 a las 20.17.14

Lo guardamos y ya tenemos la Logic App lista para ser ejecutada. En este caso, además hemos marcado la opción de poder ejecutar la Logic App manualmente para poder hacer las pruebas.

Probando nuestro conector

En la pantalla principal de la Logic App hacemos click en Run. Esto lanza nuestro proceso de negocio. Cuando termina, podemos acceder a los resultados y ver algo como esto, que nos indica que todo se ha hecho correctamente.

Captura de pantalla 2015-10-24 a las 20.18.41

Si accedemos a SharePoint OnLine, vemos que se han añadido dos elementos a la lista.

executed

Y esto es todo por hoy, hemos creado un conector personalizado, que aunque muy sencillo, nos permite ver la forma de extender la funcionalidad de las Logic Apps por medio de nuevos conectores. Con esto, junto a las anteriores entradas, os podréis hacer una idea de lo que podemos hacer con estos servicios de Azure.

Probablemente, las Logic Apps aún no estén listas para ser usadas en procesos de negocio críticos, están aún en modo preview y siguen cambiando y todavía tienen bugs que corregir. No obstante, como ya os comenté en la primera entrada sobre Logic Apps, es una herramienta a tener en cuenta y puede resultar interesante, por el hecho de tener a nuestra disposición una capa de nivel superior que nos permita implementar la lógica de negocio que conecte distintos servicios en uso. Veremos a ver la evolución que lleva este interesante servicio de Azure.

Espero que os haya resultado interesante.

Hasta la próxima

Anuncios

Un comentario en “Azure Logic Apps III: Creando conectores personalizados. Las API Apps

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s