Conectar .NET Web API con Azure API Management

Últimamente he estado programando web APIs y me adentré al mundo de Azure API Management para facilitar algunas tareas que a veces resultan difíciles de programar y mantener. Por ejemplo, crear políticas de seguridad, cuotas de llamadas a la API, autorizaciones, servicios como productos, etc. Me resultó interesante lo fácil que fue vincular mi Web API con API Management y todas las herramientas que nos ofrece AAM para desarrollo y mantenimiento en producción.

En esta publicación veremos que vincular una Web API de .NET a Azure API Management y posteriormente crearemos productos, políticas y cuotas para nuestra API.

Pre-Requisitos

Crear Web API como Azure API App

Crear nuevo proyecto Web API como Azure API App en Visual Studio:

Templates –> Visual C# –> Web –> ASP.NET Web Application

image

image

Una vez que tengamos nuestro proyecto creado, vamos a verificar que tengamos en las referencias la librería de “Swashbuckle.Core”, esté paquete nos permitirá generar nuestra definición “Swagger” de nuestra API, así podremos importarla posteriormente en Azure API Management:

image

Veremos en nuestro proyecto un controlador llamado “ValuesController”, este controlador es creado por defult. Al final nuestra API debe de versé algo así (modifiqué el tipo de “response” a IHttpActionResult):

image

Una vez que tengamos nuestra API creada, vamos a desplegarla a Azure API Apps.

Crear recurso Azure API App

Vamos al portal de Azure y buscamos por API App:

image

1

Publicar Web API a Azure API App

Damos clic derecho en nuestro proyecto y hacemos clic en “Publish”, luego seleccionamos: “Microsoft Azure App Services” y por ultimo elegimos nuestro recurso de API App.

image

image

2

image

Finalizamos el proceso dando clic en “Publish” y esperamos a que Visual Studio realice el proceso de deployment. Al finalizar, veremos algo así:

image

Antes de crear nuestro recurso de API Management, vamos a verificar que se creó nuestra definición Swagger con el siguiente enlace: http://webapi-aam-demo.azurewebsites.net/swagger/docs/v1

La forma de obtener el swagger es la siguiente: URL + /swagger/docs/v1

Nota: Swashbuckle es el que crea el recurso de swagger al compilar y/o publicar

Crear servicio de Azure API Management

Vamos al portal de Azure y buscamos por API Management y creamos el recurso. El proceso de creación puede tardar varios minutos, en mi caso esperé 30 min.

image

3

Al finalizar el deployment, podremos abrir nuestro recurso y ver lo siguiente:

4

API Gateway endpoint:

- Acepta llamadas a la API y las enruta a tu backend.
- Verifica las API Keys, JWT Tokens, Certificados y otras credenciales.
- Aplica cuotas de uso y límites de tarifas.
- Transforma tu API al vuelo sin modificación de código.
- Cache de respuestas de backend cuando se habilita.
- Crea un log de metadata para propósitos de análisis.

 

Publisher Portal:

Es una interface administrativa donde se hace la configuración y creación de los programas API.

- Define o importa el squema de la API.
- Empaqueta APIs en productos.
- Crea políticas como cuotas o transformaciones en la API.
- Obtiene información para analíticos.

Developer Portal:

Sirve como portal principal para el desarrollador, donde puede:

- Leer documentación de la API.
- Probar una API vía consola interactiva.
- Crear una cuenta y subscribirse a un producto para obtener API Keys.
- Acceder a analíticos de su propio consumo.

Para conectar nuestra API a API Management, necesitamos acceder al portal de publicador (Publisher Portal).

Importar API a API Management desde el portal de publicador

Ingresamos al portal de publicador y damos clic en “Import API”5

Ahora vamos a realizar los siguientes pasos:

1. Elegir importar “From URL”

2. Elegir el formato “Swagger”

3. Agregar la URL de nuestro squema Swagger de la Web API que desplegamos en Azure anteriormente:

http://webapi-aam-demo.azurewebsites.net/swagger/docs/v1

4. Agregar sufijo a nuestra API (opcional)

5. Agregar productos a los que vamos a relacionar con nuestra API.

 6

Damos clic en “Save” y API Management va a crear nuestra definición.

Ahora podemos ir a la sección de “APIs” y veremos nuestra API ya creada:

image

image

Si vamos a la pestaña de “Operations”, veremos nuestros métodos anteriormente definidos en nuestra API:

image

Probar API desde el portal de desarrollador

Para ir al portal de desarrollador, damos clic en “Developer Portal” en la esquina superior derecha de nuestra pantalla:

7

Una vez en el portal de desarrollador, vamos a dar clic en “APIs” y luego vamos a nuestra API que desplegamos en API Management:

8

image

image

Vemos que todo se ve en orden, y tenemos nuestras operaciones disponibles en la API.

Si vamos a la parte inferior de la página, veremos ejemplo de código, para consumir desde un cliente:

image

Para probar la API, vamos a dar clic en el botón “Try it”

image

Ahora en la parte inferior damos clic en el botón “Send” para realizar el request a nuestra operación seleccionada:

image

image

Éxito! hemos logrado vincular nuestra Web API a API Management, ahora podremos disfrutar de los servicios de Azure API Management.

Próximos pasos:

    • Crear productos, políticas de limites y cuotas en API Management

Saludos a todos!

Comments

Popular posts from this blog

Configurar y desplegar una Web API en Azure App Service Environment

Patrones de diseño para aplicaciones de alta disponibilidad en Azure - Resilient Applications (Parte I: Retry Policy)

Integrar Web API de .NET en proyecto de Xamarin.Forms utilizando Visual Studio y Azure API App

Publicar resultados de una consulta de Azure SQL Database a Azure Service Bus con Logic App