Artículo
Alberto Fuentes · Jun 15 Lectura de 2 min

Una interfaz gráfica y API de ejemplo para la utilidad SystemPerformance

¡Hola desarrolladores! Quería compartir hoy un ejemplo muy interesante por parte de Tani Frankel. Se trata de una aplicación sencilla sobre la utilidad SystemPerfomance.

Repasando nuestra documentación sobre la rutina de monitorización ^SystemPerformance (conocida como ^pButtons en versiones anteriores a IRIS), un cliente me dijo «Entiendo todo esto pero ojalá fuese más simple, más sencillo para definir perfiles y gestionarlos, etc.».

Entonces pensé que sería interesante como ejercicio facilitar una pequeña interfaz para hacer esas tareas más sencillas.

El primer paso era envolver en una API basada en clases la rutina actual de ^SystemPerformance.

Además, aproveché para añadir algunas otras funcionalidades como mostrar qué perfiles están ejecutándose actualmente, el tiempo que les falta, procesos que han estado en ejecución con anterioridad, etc.

El siguiente paso era añadir sobre esta API, una API REST.

Con este artefacto listo, cualquier puede ya lanzarse y construir una pequeña interfaz de usuario moderna.

Por ejemplo:

Así que aquí os comparto algunos de los pasos necesarios:

Dos clases, que son la API básica:

así como la clase que contiene la API REST (incluyendo algunos tests unitarios).

Un JSON con la especificación Swagger para la API REST. 

Y una interfaz gráfica sencilla en Angular (basada en http://websystique.com/angularjs/angularjs-crud-application-using-ngresource/)

Algunas notas importantes:

  • La mayor parte de los métodos de la API básica utilizan puntos de entrada que no están documentados o soportados en ^SystemPerformance o ^pButtons. Algunos de esos métodos manejan estructuras internas. Estos métodos que no están soportados ni documentados pueden dejar de funcionar según próximas versiones sin previo aviso.
  • El código no intenta de ninguna manera servir como un ejemplo de «mejor práctica» a la hora de crear aplicaciones Angular basadas en APIs REST sobre IRIS. La parte de la interfaz gráfica es un simple ejemplo como punto de partida (de hecho, hay partes sin implementar como el directorio para logs, el refresco de contenidos, etc.)
  • El código inicial fue escrito hace tiempo, así que:
    • (a) Se ha modificado para que funcione sobre IRIS (se han tenido que hacer algunos cambios en los nombres).
    • (b) Inicialmente no se utilizaba el planteamiento spec-first. Ahora sí que lo utiliza.
    • (c) Es posible que no utilice todas las últimas funcionalidades disponibles a día de hoy.
    • (d) Se ha añadido también la posibilidad de ejecutarlo en un contenedor Docker.
    • (e) Se ha añadido también soporte para ser instalado como un paquete ZPM.
0
0 49
Debate (1)1
Inicie sesión o regístrese para continuar

Este artículo ha sido etiquetado como "Mejores prácticas" ("Best practices").

enlightenedLos artículos con la etiqueta "Mejores prácticas" incluyen recomendaciones sobre cómo desarrollar, probar, implementar y administrar mejor las soluciones de InterSystems.enlightened