Características Generales de la Herramienta

Código libre

Código libre para siempre. Todo el código está disponible en Github y mantenido constantemente por Plug y la comunidad.

Node.js

100% Javascript y opcionalmente con Typescript, pensado para utilizar un único lenguaje de programación común a todos los programadores.

Baja sobrecarga y alto rendimiento

Nuestra herramienta utiliza el número mínimo de paquetes y librerías para que sea lo más fácil de mantener y mejorar. Esto proporciona un alto rendimiento por un bajo coste en infraestructura.

Extensible y Modularizable

Añada de forma fácil funcionalidad o modifique la funcionalidad actual para que la herramienta se adapte perfectamente a todas sus necesidades.

API REST

Comuníque toda su información y datos con tecnologías estándar y comunes a todos los sistemas, servicios y aplicaciones que utilice.

Control de versiones semántico

Como práctica común en los paquetes npm, utilizaremos un control de versiones semántico para todos nuestros paquetes, y todos los paquetes tendrán la misma versión.

Características Técnicas de la Herramienta

Logs

Para todos nuestros registros usaremos pino, ya que se ajusta a nuestra filosofía y tenemos una gran conectividad con otros productos como Elastic Logs.

Configuración

Habrá un archivo de configuración principal que tendrá todo lo necesario para la configuración de otros paquetes, implementaciones personalizadas y futuros productos. Se basa en archivos JSON, que podrán hacer referencia a variables de entorno y tener diferentes versiones para diferentes entornos (producción, pre-producción, desarrollo, etc...).

Cliente Http y Https

Tenemos un cliente http/s liviano que es un simple contenedor promisificado del cliente http/s de Nodejs con métodos sencillos para realizar llamadas REST JSON.

Inyección de dependencias

Es una implementación personalizada basada en una sintaxis decoradora, y será la piedra angular de todos nuestros módulos y productos. Esta sección está relacionada con nuestra filosofía de API consistente, ya que todo será administrado y configurado por el contenedor. Está influenciado por typedi, pero con una funcionalidad ampliada para satisfacer nuestras necesidades.

Manejador de eventos

Es una adaptación de EventEmitter3 a nuestro sistema de inyección de dependencias. Tiene casi la misma API que los eventos Node JS pero con algunas adiciones como contextos, por lo que no será necesario llamar a ".bind(this)", y se eliminarán algunos métodos innecesarios para un mejor rendimiento.

Trabajos programados

Para la programación de trabajos, hemos adaptado una biblioteca cron simple a nuestro sistema de inyección de dependencias y eventos para que pueda crearlos fácilmente y escuchar todos los eventos si se necesita algún registro o inserción de base de datos.

Validación de objetos

Una integración con nuestra inyección de dependencia de AJV que admite el draft-07 of JSON Schema y es una de las bibliotecas mantenidas más rápidas y mejores para este propósito.

Transformación de objetos

Otra tarea común es la transformación de objetos cuando se trata de diferentes integraciones y lógica empresarial interna, por lo que hemos creado una utilidad con una API similar a la json-map-transform para transformaciones de objetos comunes y repetitivas con plantillas precompiladas.

Tests

Es una biblioteca de prueba simple que utiliza la Node JS assert library para su validación y se basa en clases de Typescript con una integración a nuestro sistema de inyección de dependencias. No pretende ser una biblioteca de pruebas con todas las funciones como las ya existentes, y sabemos que es una elección personal de cada equipo, por lo que ofrecemos solo una posibilidad para pruebas simples, y la usamos para todas nuestras pruebas internas, por lo que También tendrá integración con otros paquetes de datos y web.

ORM

Para nuestra gestión de bases de datos, tenemos un contenedor de TypeORM que es un ORM con todas las funciones para las bases de datos SQL más utilizadas y MongoDB, planeamos agregar más soporte como transacciones MongoDB y nuevas bases de datos NoSQL. Esto está totalmente integrado con nuestra configuración y sistemas de inyección de dependencias.

Importación y exportación

Utiliza las utilidades de TypeORM para crear JSON para la importación / exportación de datos entre diferentes sistemas, pudiendo seleccionar las tablas y colecciones con el soporte de consultas.

Framework web

Para la gestión de servidores web.

Utilidades genéricas

Durante el desarrollo de varios proyectos, hemos estado reuniendo algunas utilidades de uso común, principalmente para la manipulación de objetos y promises, y otros envoltorios de NodeJS para cosas como llamadas al sistema de archivos.

OAS 3

Creemos que se necesita una buena documentación para una buena API, evento si es solo para uso interno. Esto agrega soporte para una fácil creación de archivos de descripción de OAS 3, pudiendo agregar pequeños trozos de documentación para cada operación creada, por lo que se actualiza fácilmente al mismo tiempo que cambia el código, y se puede versionar.

Login

Fácil integración de mecanismos de inicio de sesión básicos como basic auth o JWT, pero también fácil de ampliar para estrategias de inicio de sesión personalizadas, y se agregará nuevo soporte en el futuro.

Nuestro sitio web utiliza cookies para mejorar su experiencia de navegación. Al utilizar nuestro sitio, usted acepta nuestro uso de cookies. Leer más...