Subir una Web API a Azure API Apps

Si hemos creado alguna vez una Web API, habremos visto que normalmente se suelen consumir los servicios que ofrece dentro de una página web. No obstante, estos servicios podrían consumirse perfectamente desde cualquier otro cliente, sin que sea necesario que sea una web. Por ejemplo, si creamos una aplicación para Windows 10, podríamos hacer uso de los datos que nos proporciona la API creada.

Si no lo conocemos, Azure tiene un servicio llamado Azure App Service. Azure App Service es una plataforma que proporciona herramientas para ayudarnos a construir y desplegar aplicaciones en la nube, tanto aplicaciones Web como aplicaciones móviles. Entre esas herramientas se encuentra Azure API Apps.

¿Qué es Azure API Apps?

Azure API Apps es una plataforma que nos permite construir, publicar, consumir y administrar APIs basadas en REST (RESTful APIs). Como características destacables podemos encontrar:

- Integración con Swagger, un framework que define un interfaz para permitir conocer las funcionalidades que ofrece una API sin necesidad de acceder al código fuente.

- Soporta control de acceso basado en Active Directory o en servicios como Facebook o Twitter. De esta manera podemos controlar quién tiene acceso a la API desde la propia API Apps, sin necesidad de implementarlo en código.

- Posibilidad de publicar las APIs en el Marketplace de Azure, pudiendo utilizar las APIs aquí publicadas desde otras aplicaciones. Incluso en un futuro se podrán llegar a monetizar.

- Integración con Visual Studio

Quizás pienses que comenzar a usar Azure API Apps es algo complicado, pero nada más lejos de la realidad. Vamos a ver su funcionamiento.

Este tutorial lo realizaremos con Visual Studio 2015. Además, será necesario tener instalado el Azure SDK for Visual Studio 2015.

En primer lugar, abriremos Visual Studio, y creamos un nuevo proyecto usando la plantilla ASP.NET Web Application. Posteriormente, dentro de las plantillas existentes para ASP.NET, escogemos Azure API App (Preview) .

clip_image002

Haremos una API de juegos de mesa. Por tanto, crearemos un modelo en la carpeta Models llamado JuegoMesa.cs que tendrá tres propiedades: Nombre, duración aproximada y número de jugadores.

clip_image003

Creamos un controlador. Hacemos click derecho en la carpeta Controllers y vamos a Add a Controller, y escogemos Empty Controller. Nos pedirá un nombre, yo le he llamado JuegosController. Para este ejemplo implementaremos únicamente métodos de obtención. El controlador quedará así:

clip_image005

Por último, vamos a habilitar Swagger UI. Swagger UI se encargará de generar un HTML que nos permitirá visualizar los servicios que ofrece nuestra API, así como probarlos. Para habilitarlo, en la carpeta App_Start abrimos el fichero SwaggerConfig.cs, y descomentamos la línea que se muestra en la imagen:

clip_image007

¡Listo! Antes de desplegar nuestra aplicación, vamos a probarla. Pulsamos F5, y en vamos a la URL:

https://localhost:PUERTO/swagger/ui/index

Si todo ha ido correctamente, ¡podremos ver nuestra API y los métodos que ofrece!

clip_image009

Probando a ver si funciona…

clip_image011

¡Funciona correctamente!

Desplegando mi App a Azure API Apps

Visto que todo funciona, es hora de desplegar la aplicación en Azure. Para ello, hacemos click derecho en el proyecto y clicamos en Publish.

Nos pedirá un destino para el despliegue. Visual Studio nos sugerirá servicios donde publicarlo en función del proyecto que hayamos creado. Como se puede ver en la imagen, nos aparece como destino Azure API Apps. Lo seleccionamos e introducimos nuestro Login.

clip_image012

Introducimos el nombre de la API y escogemos un App Service Plan. Si no tenemos uno, seleccionamos Create new. Procedemos de la misma forma con Resource Group.

clip_image013

Si lo preferimos, podemos crear la API App desde Azure y posteriormente publicar desde Visual Studio. Para ello, vamos a nuestro portal de Azure, y seguimos los pasos que se indican en la imagen.

clip_image015

En cualquier caso, volveremos a dar click derecho al proyecto y volvemos a darle a Publish. Esta vez nos aparecerá la API App creada.

clip_image016

La seleccionamos, y al darle OK nos aparecerá otra ventana con los datos de publicación introducidos. Le damos a Publish.

image

Se nos abrirá el navegador tratando de acceder a la aplicación. Al igual que antes, a la URL tendremos que añadirle /swagger para poder acceder a la API. Si todo va correctamente, nos aparecerá la misma pantalla que vimos anteriormente, y puedes probarla para comprobar que todo está en orden.

Importante: Si el proceso de creación de la API App lo hicimos desde el portal de Azure, es posible que esta esté solo disponible para uso interno. Por tanto, al acceder a la URL cuando publicamos la API, nos dará un error 403. Para solucionar esto, desde el mismo portal, seleccionamos nuestra API, vamos a All Settings, y dentro de Application Settings escogemos nivel de acceso Public (anonymous) .

clip_image020

¡Y eso es todo! ¡Ya tienes tu API en Azure lista y funcionando!

clip_image022

Daniel Escribano García

Technical Evangelist Intern

@daesgar90