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

Despliegue de contenedores Docker a Azure Web Apps

.NET Web API output cache con Azure Redis Cache

Geospatial queries in Azure Redis Cache using Node.js Azure API App

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