Icono del sitio Profile Software Services

Introducción a IBM API Connect Microgateway Framework

API-Connect-microgateway-framework

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

¿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:

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


 

Anexo: DataPower Gateway

Con DataPower Gateway se puede hacer el siguiente gatewayscript equivalente:

Salir de la versión móvil