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.
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...
Un par de sugerencias rápidas sobre el uso de esta interfaz:
- Hay que abrir la URL (solo en HTTP) y pinchar en el botón Explore (Gracias a Kevin Dillard para ayudarme con esto).
- Si quieres acceder a las API de Search en vez de las de Commerce Runtime, recuerda que hay que modificar la URL en http://localhost/search/resources/api cambiando el contexto.
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.
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:
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