App Service: Api Apps

Hace unos días te conté en qué consiste el nuevo servicio App Service y todos los componentes que lo forma. Hoy voy a entrar más en detalle en Api Apps. Tal y cómo su nombre indica su fin es alojar Apis en el cloud para ser consumidas desde cualquier sitio o desde un grupo reducido de recursos. Al igual que Web Apps y Mobile Apps, además del alojamiento te ofrece otras funcionalidades como el autoescalado, alta disponibilidad, diferentes niveles de acceso, Web Jobs, etcétera.

Cómo comenzar

Desde la versión 2.5.1 del SDK de Azure se ofrece una plantilla para poder trabajar con este servicio, a través de New Project -> Web -> ASP.NET Web Application > Azure API App (Preview).

Azure API App Preview project template

No obstante, si lo que quieres es convertir tus proyectos con ASP.NET MVC Web API puedes hacerlo seleccionando el proyecto con el botón derecho y añadiendo el SDK a través de la opción Add > Azure Api App SDK

Add Azure API App SDK

En este segundo caso se te pedirá localizar el archivo de metadata para Swagger.

Azure API App - Choose Metadata source

¿Pero qué es Swagger? Se trata de una tecnología que te permite representar tu API REST, generando de forma automática la documentación, además de tener la capacidad de poder crear el código de cliente necesario para poder consumirlas.

De una forma u otra lo que vas a conseguir es un proyecto ASP.NET Web API con una referencia a Microsoft.Azure.AppService.ApiApps.Service, una carpeta llamada Metadata que contiene un archivo json con las información del recurso y, en la raíz del proyecto, el archivo apiapp.json que contiene información relacionada con la versión del producto,  titulo, autor, etcétera. Estos dos recursos se utilizan para gestionar la forma en la que tu API se verá en el marketplace de Azure. Si ejecutas la solución y accedes a http://localhost:XXXXX/swagger accederás a la UI de swagger con la documentación disponible sobre tu API.

Microsoft Azure Api App - Swagger UI

Desplegar el proyecto en Api Apps

Para publicar tu proyecto sobre el nuevo componente de App Service, Api Apps, la mecánica es exactamente la misma que un Website. Selecciona el proyecto, haz clic sobre la opción Publish… y utiliza como destino Microsoft Azure API Apps (Preview).

Select a publish target - Microsoft Azure API Apps Preview

Crea un nuevo servicio a través del botón New… donde deberás de elegir los siguientes valores:

Create an API App on Microsoft Azure

  • API App Name: Nombre descriptivo de la API. Se trata de un nombre interno.
  • Subscription: Selecciona la suscripción donde será alojado el servicio.
  • App Service plan: Se trata del contenedor al que pertenecerá la API. Ya se habló sobre este concepto en el post de introducción, donde se explicaba que te permite alojar recursos de App Service que deben trabajar de manera conjunta.
  • Resource group: Un App Service Plan siempre está alojado dentro de un resource group, por lo que si ya tenías un plan creado y lo has elegido este campo se seleccionará de forma automática. En caso contrario, deberás crear un resource group donde almacenar tu App Service Plan sobre el que podrás gestionar diferentes servicios de la plataforma, ver una facturación conjunta, asociar permisos de acceso sobre el grupo, etcétera.
  • Access Level: Gracias a esta opción tendrás la posibilidad de elegir el tipo de acceso que se podrá tener a tu API. Las opciones son: Available to Anyone, Public Authenticated Access, Available only to other APIs in the Resource Group.
  • Region: Datacenter en el que estará alojado el servicio.

Una vez elegidos todos los valores y hecho clic sobre el botón OK, aparecerá una ventana avisandote de que el proceso no es inmediato, por lo que debes esperar a que la creación finalice.

Create a New Azure API App - Warning

Para comprobar que se ha creado correctamente puedes verlo en la pestaña Azure App Service Activity que se abrirá de manera automática mostrando el progreso.

Azure App Service Activity

Una vez confirmado podrás volver a seleccionar la opción Publish y los valores para el despliegue ya estarán correctamente actualizados para poder lanzar la publicación.

Probar Api Apps

El último paso es comprobar que el nuevo servicio funciona correctamente. Lo primero que puedes hacer es acceder a http://portal.azure.com para comprobar el estado del componente. Puedes encontrarlo a través de Browse > API Apps.

Azure Portal - Browse - API Apps

Dentro de la configuración de Api App existe un apartado llamado Api Definition donde puedes ver todas las acciones que están expuestas de tu API.

Api App - API definition

Al haber seleccionado el nivel de acceso Available to anyone puedes utilizar cualquiera de los clientes que mencioné en este post.

Api App - Postman test

¡Saludos!