Servicios REST de IBM WebSphere Commerce v7 y Swagger v2

Publicado por Marco Fabbri el

eCommerceIBM WebSphere CommerceSwagger

Para empezar a interactuar con los servicios REST expuestos por una plataforma específica, es bastante común utilizar sus declaraciones en formato Swagger JSON v2.

Por ejemplo para empezar a testear los servicios REST de Oracle Commerce Cloud v16.1, simplemente hay que descargar este JSON desde el enlace que Oracle pone en la documentación pública y utilizarlo para lanzar peticiones a vuestra instancia OCC.

OCC Swagger import on SoapUI

Desafortunadamente para WebSphere Commerce no resulta tan sencillo.

Para bajar el JSON de Swagger asociado a cada servicio se puede utilizar la Swagger UI estándar que viene con el WebSphere Commerce Developer: pero no resulta muy práctico guardar un JSON por cada uno de ellos...

WebSphere Commerce Swagger 1.2 UI on Commerce Developer

Un par de sugerencias rápidas sobre el uso de esta interfaz:

WebSphere Commerce v7 Search API declarations

Si se intenta abrir la Swagger UI dándole al botón de envío, se generará una redirección a HTTPS y no será posible acceder a la lista de las API.

CORS configuration error accessing Swagger interface

El error, que se verifica en todas las versiones recientes de Firefox y Chrome, es debido a la falta de una configuración CORS en WebSphere Commerce (ésto se soluciona con el APAR JR55289 que es un backport para v7 de la funcionalidad descrita por Bob Balfe en este post).

Resumiendo, no hay un fichero swagger.json disponible para la descarga que incluya todas las declaraciones y la versión de Swagger utilizada por WebSphere Commerce v7 sigue siendo la 1.2 (¿por qué no votar mi RFE para actualizarlo a la v2? ;-)).

Para salir del paso he abierto un PMR al soporte IBM (25672,756,000: Gracias Steve Boggs) pidiendo ayudarme en definir un procedimiento para crear un fichero Swagger de todos los servicios disponibles y actualizar su versión a la v2 (Sí, se puede pedir eso también al soporte IBM).

Después de un tiempo y varios correos en los que nuestro Commerce Technology Advocate ayudó también, se generó un fichero Swagger JSON v2 para el Runtime y el Search server que comparto aquí a través de mi GitHub.

Swagger.json for WebSphere Commerce v7 FEP8 runtime

Swagger.json for WebSphere Commerce v7 FEP8 search

Solo queda importar estas declaraciones en vuestra herramienta de testing preferida (en mi caso SoapUI) y empezar a testear las funcionalidades ofrecidas por los servicios REST de WebSphere Commerce:

WebSphere Commerce v7 Runtime Swagger JSON imported on SoapUI

Este tutorial de developerWorks podría ser un buen punto de partida. También merece la pena probar la visualización grafica de las API REST instalando el plugin para Chrome Swagger.ed desarrollado por Chris Spiliotopoulos: abrid los enlaces a los ficheros swagger.json con ese plugin.

Si he despertado tu curiosidad con este post, puedes utilizar mi twitter @MarcoFabbriWork para contactarme.

You can find the same content but in English here

Autor

Marco Fabbri

Liderando el Centro Experto de eCommerce de atSistemas entre consultoría de proyectos por aquí y por allí, intento compartir información útil para compañeros y clientes