• Ingeniero Informático que desarrolla su actividad profesional como Arquitecto Software.

¡Compártelo!
Share on facebook
Share on google
Share on twitter
Share on linkedin

Introducción a IBM API Connect Microgateway Framework

Los productos de gestión de APIs (Interfaces de Programación de Aplicaciones) se encargan de:

  • proceso de creación y publicación de API
  • aplicación de sus políticas de uso
  • control de acceso
  • manejo de la comunidad de suscriptores
  • y recopilación y análisis de estadísticas de uso

¿Qué es IBM API Connect?

IBM  API Connect  es una solución de gestión de APIs que permite crear, ejecutar, gestionar y proteger APIs y microservicios. Dentro de API Connect nos encontramos con Microgateway, que es un gateway extensible orientado al desarrollador, escrito en Node.js para reforzar el acceso a microservicios y APIs.
Este post es una alternativa a Introducing API Microgateway: a Programmable Open Source Gateway for your APIs”. Aquí, en vez del tipo LoopBackcrearemos un proyecto OpenAPI, para cuando queramos hacer uso del gateway a partir de servicios web que ya tengamos desarrollados y documentados con Swagger.
En concreto, dado un servicio web que nos devuelve un JSON con los atributos id y content, haremos uso de Microgateway para filtrar la salida, eliminando el atributo id.

Instalación APIC CLI

Asumiendo que ya tienes instalado: Git, Node y npm; ejecuta «npm install -g apiconnect» para instalar la interfaz de línea de comandos de API Connect.

Documentación de un servicio web RESTful

Partiendo de la receta «Building a RESTful Web Service with Spring» vamos a documentar dicho servicio utilizando SpringFox v2.6.1.
Añadimos dependencias al pom:

Anotamos con @EnableSwagger2 y configuramos el Docket en la aplicación:

Documentamos el POJO Greeting.java de salida:

Documentamos el Controlador:

Si además queremos usar herramientas como el editor online de Swagger, debemos añadir un filtro CORS del estilo de
https://github.com/venosov/gs-rest-service/blob/916e9c61ea0c6e28f8a059c1ad35fa9550671c1d/complete/src/main/java/hello/SimpleCORSFilter.java,
pero en este caso debemos hacer el siguiente ajuste «.header(«Origin», «»)» en los tests
https://github.com/venosov/gs-rest-service/blob/bc443ab9257ee1f170b95653940e36392a983bf5/complete/src/test/java/hello/GreetingControllerTests.java
Arrancamos nuestra aplicación Spring Boot y con todo esto ya tenemos nuestro Rest documentado:

 
El código fuente completo está disponible en https://github.com/venosov/gs-rest-service/.
También está listo para desplegarse en IBM Bluemix.

Creación de definición de API con API Connect

Creamos el directorio donde queramos albergar la definición, nos metemos en él y levantamos el diseñador:

	$ mkdir blog-profile
	$ cd blog-profile
	$ apic edit

Necesitaremos tener una cuenta en IBM Bluemix para poder logarnos en la página que se nos abrirá en el navegador.
Pinchamos en el botón «Añadir», en la opción «Importar API de un archivo o URL» que sale en el menú desplegado e introducimos la URI «http://localhost:8080/v2/api-docs?group=greetings»
Ya tenemos la configuración Swagger importada, pero debemos hacer algunos ajustes:

  • Marcamos esquema https
  • Cambiamos el valor de la propiedad Host por: $(catalog.host)
  • Marcamos consumo application/json
  • Marcamos produce application/json
  • Le damos al botón de guardar.
  • Pinchamos en el botón de «Play» que hay abajo a la izquierda (si da el error «PM no en ejecución» se pulsa de nuevo) y permanecemos a la espera hasta que la «Pasarela Micro» esté en ejecución (https://localhost:4001/)
  • Pinchamos en ensamblar.
  • Creamos un conjunto.
  • Le añadimos la «Policy» «Invocar». En URL especificamos: http://localhost:8080$(request.path)
  • Le damos al botón de guardar.
  • Pinchamos en el play chiquitito que hay encima del dibujo del conjunto (tooltip Probar).

  • Elegimos la operación get /greeting
  • Pinchamos en Invocar.
    • Si da algún error relativo a seguridad, es porque de forma predeterminada, el gateway local de API Connect utiliza un certificado falso y el navegador se queja de ello. Abre ese enlace en una nueva pestaña, selecciona la opción para aceptar el certificado y haz click en Invocar de nuevo.

Creación de una política personalizada

Paramos el Microgateway, nos deslogamos y tiramos el API Connect (Ctrl-C).
Creamos el directorio:

$ mkdir -p policies/removesensitive
$ cd policies/removesensitive

Creamos estos 3 ficheros para eliminar atributos (en este caso el ‘id’) de salida:


$ cd ../../

Modificamos el archivo .apiconnect/config  para que su contenido sea:

{
  userPolicies: ["policies"]
}

Juntándolo todo

$ apic edit
  • Arrancamos el Microgateway (botón play) y esperamos a que se inicie.
  • Pinchamos en el API.
  • Pinchamos en la pestaña Ensamblar.
  • Añadimos nuestra nueva política.
  • Pincharmos en el botón guardar.
  • Ejecutamos.


 

Anexo: DataPower Gateway

Con DataPower Gateway se puede hacer el siguiente gatewayscript equivalente:

Artículos relacionados

Qué es Ionic

Qué es Ionic y por qué utilizarlo para desarrollar aplicaciones móviles híbridas

Ionic es un SDK de front-end de código abierto basado en tecnologías web (HTML, CSS y JS) que es utilizado para desarrollar aplicaciones móviles híbridas. Ionic proporciona una librería de componentes híbridos optimizada para dispositivos móviles. Su compatibilidad y, gracias a la implementación de Cordova

Ejecutar aplicaciones Spring Boot como imágenes nativas de GraalVM

Ejecutar aplicaciones Spring Boot como imágenes nativas de GraalVM

En este post te mostramos paso a paso cómo ejecutar aplicaciones Spring Boot como imágenes nativas de GraalVM, para conseguir que nuestras aplicaciones arranquen más rápido y tengan un menor consumo de memoria. Uso de memoria en Java Como todos sabemos, Java es uno de

extensiones Chrome Front End

13 extensiones de Chrome para desarrolladores Front End

Google Chrome es el navegador más popular usado del mercado y esto hace que también sea el que mayor número de extensiones tiene disponible en su catálogo. Las hay de todo tipo y para innumerables usos. A continuación repasamos las extensiones de Chrome para desarrolladores