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
- Suscripción a Azure, puedes obtener un free trial aquí
- Visual Studio 2013+
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
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:
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):
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:
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.
Finalizamos el proceso dando clic en “Publish” y esperamos a que Visual Studio realice el proceso de deployment. Al finalizar, veremos algo así:
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.
Al finalizar el deployment, podremos abrir nuestro recurso y ver lo siguiente:
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”
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.
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:
Si vamos a la pestaña de “Operations”, veremos nuestros métodos anteriormente definidos en nuestra API:
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:
Una vez en el portal de desarrollador, vamos a dar clic en “APIs” y luego vamos a nuestra API que desplegamos en API Management:
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:
Para probar la API, vamos a dar clic en el botón “Try it”
Ahora en la parte inferior damos clic en el botón “Send” para realizar el request a nuestra operación seleccionada:
É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
Post a Comment