¡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

Qué son los lenguajes de scripting

¿Qué son los lenguajes de scripting?

Con los avances de la tecnología, surgió la necesidad de crear una nueva forma de programar, más allá de los lenguajes de programación tradicionales. Por ello, nació el scripting. En este post, os mostramos qué son los lenguajes de scripting, en que se pueden utilizar,

Automatizar pruebas en Selenium

Cómo automatizar pruebas con Selenium

Selenium es uno de los frameworks más utilizados para programar y automatizar las interacciones de un usuario sobre una aplicación web. Se puede utilizar a través de lenguajes como Java, Python, C#, Javascript y Kotlin. Es habitual combinarlo con Cucumber para aplicar la metodología BDD

Tendencias en DevOps en 2023

8 tendencias en DevOps para 2023

En los últimos años DevOps se ha convertido en una metodología fundamental de desarrollo de software. Beneficios como la entrega de productos de calidad en menos tiempo, poder resolver problemas con rapidez y la reducción de costes lo han hecho esencial. Pero este enfoque no