¡Compártelo!

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

jdk 21

Jdk 21: mejoras en la última versión LTS de Java

Cada 6 meses Java lanza una nueva versión de nuestro lenguaje favorito. Da igual si la estábamos esperando con ganas o si nos pilla por sorpresa, es algo que celebrar dentro de la comunidad. Esta vez la versión 21 incluye diferentes características estables, otras en

openAPI

Explorando OpenApi: estructura, rutas y seguridad

En este artículo, nos adentraremos en la utilización de OpenApi para crear los diferentes endpoints de nuestra aplicación, con sus diferentes objetos de request y response que necesitemos. ¡Vamos allá! ¿Qué es una API? Las API (Interfaz de Programación de Aplicaciones) son piezas de código

Cómo hacer una Regresión Lineal Simple en Machine Learning

Cómo hacer una Regresión Lineal Simple en Machine Learning

En la actualidad, el aprendizaje automático se ha convertido en una de las bases para resolver problemas y como ayuda a la toma de decisiones. En este artículo nos centraremos en el análisis y aplicación práctica de uno de los modelos predictivos más sencillos, el