Artículo
· 20 mayo, 2024 Lectura de 4 min

Ideas implementadas: Wizard o Asistente para generar ObjectScript a partir de una OpenAPI

La especificación OpenAPI (OAS) define una interfaz estándar e independiente del lenguaje para las API HTTP que permite tanto a humanos como a ordenadores descubrir y comprender las capacidades del servicio sin acceso al código fuente, la documentación o mediante la inspección del tráfico de red. Cuando se define correctamente, un consumidor puede entender e interactuar con el servicio remoto con una cantidad mínima de lógica de implementación. Aunque para las API basadas en SOAP existe un asistente especial en InterSystems IRIS que reduce el tiempo de desarrollo de las orquestaciones, no todas las API utilizadas en las integraciones son SOAP. Por eso @Jaime Lerga sugirió añadir un asistente similar al de SOAP para generar un cliente REST a partir de la especificación OpenAPI. La implementación de esta idea reduce el tiempo de desarrollo de las orquestaciones REST API con InterSystems IRIS. Esta idea es una de las más populares en las ideas de InterSystems. Este artículo, el tercero de la serie "Ideas implementadas", se centra en la solución OpenAPI Suite desarrollada por @Lorenzo Scalese.
 

En resumen, OpenAPI-Suite es un conjunto de herramientas (paquetes y librerías), para generar código ObjectScript a partir de una especificación OpenAPI versión 3.0. Estas herramientas permiten:  

  • Generar clases del lado del servidor.  
  • Generar clases cliente HTTP.
  • Generar clases de producción cliente (servicios de negocio, operación de negocio, proceso de negocio, Ens.Request, Ens.Response).
  • Una interfaz web para generar y descargar el código o generar y compilar directamente en el servidor.
  • Convertir la especificación de la versión 1.x, 2.x a la versión 3.0.

El esquema anterior proporciona la lista de todos los paquetes desarrollados en OpenAPI-Suite, y las bibliotecas y servicios web utilizados. La descripción detallada de cada paquete y librería, así como otros detalles importantes sobre la solución están disponibles en la serie de artículos escritos por el autor de la implementación: OpenAPI Suite - Parte 1 , OpenAPI Suite - Parte 2

Un agradecimiento especial a @Lorenzo Scalese por responder a las preguntas sobre la implementación de esto. A continuación se muestra una breve recopilación basada en sus respuestas y artículos dedicados a la aplicación OpenAPI-Suite.

Scalese destacó varias razones por las que le intrigaba la aplicación de esta idea:

  • A menudo se encontraba repitiendo las mismas tareas cuando diseñaba API REST, tanto en el lado del servidor como en el del cliente. Le llevaba mucho tiempo y era ineficaz.
  • Observó una laguna en el campo del desarrollo de API: la falta de herramientas adecuadas para generar código ObjectScript a partir de las especificaciones de la versión 3 de OpenAPI.
  • Diseñar un generador de código para resolver este problema es un reto técnico sumamente estimulante y enriquecedor desde el punto de vista profesional.

Durante la implementación, el desarrollador quedó impresionado sobre todo por la facilidad con la que pudo generar clases ObjectScript. El uso de la API %Dictionary resultó ser un recurso muy valioso, que simplificó enormemente el proceso. Además, le sorprendió la variedad de expresiones que la especificación OAS 3 permitía para lograr el mismo resultado. Gestionar esta variabilidad y garantizar la cobertura de todos los casos posibles fue uno de los principales retos a los que se enfrentó Scalese.

Al desarrollador de OpenAPI-Suite le gustaría introducir mejoras significativas en la interfaz de usuario de la solución. Actualmente, es bastante básica y carece de opciones de personalización. Muchas funciones sólo están disponibles en modo terminal, por lo que planea añadir funcionalidades de personalización más avanzadas. Además, @Lorenzo Scalese está motivado para desarrollar una aplicación front-end completa para mejorar la experiencia del usuario. A veces también se pregunta si crear un plugin de Swagger para ObjectScript no habría sido una mejor opción, permitiendo la generación directa de código accesible a través de https://editor.swagger.io/. Esto permitiría una integración más fluida en los flujos de trabajo de los desarrolladores.

La solución OpenAPI-Suite despertó un gran interés entre los miembros de la comunidad de desarrolladores de InterSystems. Se instaló 135 veces utilizando IPM, tiene 4 reseñas de desarrolladores y cuenta con 5 estrellas de valoración. @Theo Stolker dice en su reseña que OpenAPI-suite es la mejor opción posible cuando el objetivo del desarrollador es generar código cliente para una API publicada como especificación OpenAPI.


Por favor, compartid vuestra opinión sobre la solución e idea destacadas en los comentarios.

No olvidéis publicar vuestras ideas, votar y comentar las ideas existentes y poner en práctica las ideas de Oportunidades para la Comunidad.

Comentarios (0)1
Inicie sesión o regístrese para continuar