Creación de API proxies en Apigee

Como parte del ciclo de vida de la API se establece el proceso de generar la instancia de la API, la cual inicia con su despliegue en la herramienta de API Management, en este caso Apigee-Hybrid. Esta carga se puede realizar de tres formas:

  • Reverse Proxy.
  • No Target.
  • Upload proxy bundle.

Proxy Bundle Apigee

La forma de carga que se tratará en este artículo será mediante upload proxy bundle.

A través de esta opción se puede llevar a cabo la importación de un Bundle de Apigee, este artefacto está representado por un archivo comprimido (.zip) que tiene la siguiente estructura, contiene cuatro carpetas con las definiciones del proxy y permite crear el mismo en base a los archivos contenidos. Apigee organiza la configuración del proxy de la siguiente manera, que puede verse en el editor de proxies de la consola de Apigee:

  • policies: Contiene tantos archivos xml como políticas a aplicar en el proxy, políticas de seguridad, log, validación de especificación, etc.
  • proxies: Contiene un archivo xml con la definición de PreFlow, Flows y PostFlow del proxy, así como su BasePath, TargetEndpoint, etc.
  • resources: Contiene el archivo .yaml con la especificación de la API.
  • targets: Contiene un archivo xml con la información de los Target Endpoint a utilizar por el proxy.

y el archivo que representa las propiedades del propio proxy:

  • { _nombreapiproxy }.xml: Contiene información como el basepath, conjunto de políticas utilizadas, TargetEndpoint, etc.

Cada carpeta, en su interior, contiene archivos XML, que contienen la configuración a cargar y establecer en el proxy.

Herramienta gestión bundles

Construcción

Para generar este archivo de manera automatizada, se propone la generación a través de una herramienta a desarrollar, que sea capaz de leer una especificación API y genere el archivo a partir de ésta. Debe tener las siguientes funcionalidades:

  • Lectura de la especificación API. La herramienta soporta la lectura desde un archivo local o bien desde una localización remota accesible vía URL.
  • Soportar formato YAML, JSON y XML.
  • Generar la estructura del Bundle de acuerdo a Apigee. Información como: Base Paths, Resources, Target URL, Schemes
  • Información adicional será transformada desde la especificación OpenAPI Spec 3.0 a archivos XML.

Finalmente, el API Bundle es comprimido en un archivo .zip.

Despliegue/Exportación

Por norma general, el despliegue del archivo Bundle en Apigee se lleva a cabo mediante la consola UI de Apigee o bien usando la API de Apigee. Para automatizar el proceso de tal manera que se consiga una gran homogeneidad y rapidez en el despliegue de proxies o exportación de revisiones de proxies, se puede trabajar en un artefacto tal y como se ha comentado anteriormente, que sea capaz de realizar estas llamadas a la API de administración de Apigee (API explicada en el sitio de Apigee.)

Nota: Para hacer uso de la API de Apigee es necesario contar con las credenciales que acrediten tu identificación y autorización de acceso a los recursos. Puede verse más información al respecto posteriormente.

En los casos en que se requiera llevar a cabo una copia o bien una importación de un API Proxy de una instancia de Apigee hacia otra, ya sea por cuestiones de promocionar de entorno o cambiar de instancia de Apigee, se sugiere hacer uso de la exportación de la revisión del proxy para su posterior despliegue.

Obtención de credenciales para API de administración de Apigee

Según la instalación de Apigee, existen diferentes modos de acreditarse, LDAP de la empresa si es On premise, Manager de acceso del GCP si está en el Cloud, en este caso se utiliza la segunda opción. Para ello, es necesario generar un Token de autorización para poder ejecutar estas API, para llevar a cabo esto es necesario contar con el archivo json de Google que representa su identificación. Para la generación de este archivo es necesario acceder a la consola de GCP en el módulo IAM y una vez identificada la cuenta de servicio a utilizar, generar su clave.

Digital Lover

Uso del artefacto desarrollado mediante CI/CD

Con el fin de generar un proceso totalmente automatizado, se puede integrar el artefacto desarrollado mediante DevOps en una serie de pipelines que contemplen todo el ciclo de vida de la API, tal y como puede verse en la siguiente imagen:

Generación sandbox a partir de las especificaciones

Además, podemos utilizar estas nuevas capacidades de CI/CD de las APIs en Apigee para generar un entorno de Sandbox, que devuelva respuestas mockeadas a partir de la propia especificación de la API y la definición de ejemplos para cada uno de los paths definidos en la misma. Si se requiere, es posible utilizar un API Portal, como podría ser “Drupal”, para facilitar el test de este tipo de peticiones de una manera más gráfica.

Para ello, es necesario desarrollar un artefacto que sea capaz de interactuar con la api de administración de Apigee, leer las especificaciones y los diferentes ejemplos que estén añadidos por cada uno de los paths que contenga la api, y que en base a los mismos, genere y despliegue el bundle en Apigee, seteando de forma dinámica la respuesta correspondiente para cada uno de ellos mediante una política. El flujo, podría ser tal y como el que se muestra a continuación:

 

 

 

Tags

API
He leído y acepto la política de privacidad
Acepto recibir emails sobre actividades de recruiting NTT DATA