Closed milo19980525 closed 9 months ago
@a52290451 Por favor comentar lo adelantado en el issue.
Herramienta utilizada
Para la automatización de código en la creación y refactorización de proyectos, se empleo Hygen, cuya investigación se encuentra en: #75
Creación de plantilla para API_MID en GO
Para la creación de la plantilla API_MID se utilizo como punto de referencia la API CUMPLIDOS_DVE_MID. La implementación inicial deja como resultado la siguiente estructura de archivos fuente:
Los datos que se configuraron para que sean ingresados por parte del usuario y lograr un mayor nivel de personalización de la API generada son:
Para la creación de la API se ejecuta el siguiente comando:
hygen api_mid_template with-prompt --appname api_mid_prueba
En donde:
Luego se solicita que se ingresen los datos anteriormente mencionados:
Y, finalmente, de forma automática, se crea el directorio con el nombre de la API señalado, y en su interior todos los archivos correspondientes:
La vista final de la estructura de archivos de la nueva API queda de la siguiente manera.
Nota: cabe aclarar que, al finalizar la generación de los archivos, de igual forma se instrumentan una serie de comandos que generan archivos complementarios como "go.mod", "go.sum", "swagger.json", "swagger.yml" entre otros. Todo esto con el fin de lograr que la API quede lista para su ejecución.
Creación de plantilla para API_CRUD en GO, con base en una BD
Para la creación de la plantilla API_CRUD, no se empleó una API base, en su lugar, a través del comando:
'bee api appname -driver=postgres -conn="postgres:// pguser:pgpass@pghost/dbname?sslmode=disable
Se realiza la creación de una API_CRUD inicial, con base en una Base de datos Postgres existente.
La implementación inicial deja como resultado la siguiente estructura de archivos fuente:
Tras la generación inicial de la API_CRUD, hygen sobrescribe y actualiza los archivos app.conf y main.go. El resto de los archivos, se mantienen iguales.
Los datos que se configuraron para que sean ingresados por parte del usuario y lograr un mayor nivel de personalización de la API generada son:
Para la creación de la API se ejecuta el siguiente comando:
hygen api_crud_template with-prompt --appname api_crud_prueba
En donde:
Luego se solicita que se ingresen los datos anteriormente mencionados:
Y, finalmente, de forma automática, se crea el directorio con el nombre de la API señalado, y en su interior todos los archivos correspondientes:
La vista final de la estructura de archivos de la nueva API queda de la siguiente manera.
Nota:
DEUDA TÉCNICA
Creación de plantilla para Nuevos Clientes en Angular JS y TypeScript
Para la creación del generador de Nuevos Clientes se utilizó como base la plantilla señalada en los lineamientos de la OATIC.
La implementación inicial deja como resultado la siguiente estructura de archivos fuente:
Son aproximadamente 56 archivos base, lo cual supone una gran cuota inicial de archivos para un nuevo cliente.
Tras la generación inicial del cliente, hygen ejecuta una serie de comandos que copian los archivos estáticos, como assets y demás, a sus ubicaciones correspondientes.
Los datos que se configuraron para que sean ingresados por parte del usuario y lograr un mayor nivel de personalización de la API generada son:
Para la creación de la API se ejecuta el siguiente comando:
hygen cliente_oas_template with-prompt --appname cliente_prueba
En donde:
Luego se solicita que se ingresen los datos anteriormente mencionados:
Y, finalmente, de forma automática, se crea el directorio con el nombre del cliente señalado, y en su interior todos los archivos correspondientes:
La ejecución de este comando tarde un poco ya que internamente ejecuta el comando:
npm i --legacy-peer-deps
El cual se encarga de instalar todos los paquetes y dependencias del proyecto.
La vista final de la estructura de archivos del nuevo cliente queda de la siguiente manera.
Nota: cabe aclarar que, al finalizar la generación de los archivos, de igual forma se instrumentan una serie de comandos que generan y copian archivos complementarios y realizan la instalación de dependencias del proyecto. Todo esto con el fin de lograr que el cliente quede lista para su ejecución.
DEUDA TÉCNICA
DEUDA TÉCNICA GENERAL
Automatización y sincronización con GITHUB
@milo19980525 Se requiere especificar Repositorio para cargar las plantillas creadas
@a52290451 porfa crear un nuevo repo para cada plantilla y subirlo allí, muy buen trabajo.
Creación de repositorios
Repositorio para Plantilla API_MID: https://github.com/udistrital/plantilla_api_mid
Repositorio para Plantilla API_CRUD: https://github.com/udistrital/plantilla_api_mid
Repositorio para Plantilla de Nuevos Clientes: https://github.com/udistrital/plantilla_cliente_oas
Se requiere desarrollar una prueba de concepto para automatización de código empleando alguna de las herrmientas encontradas en #75.
Especificaciones técnicas
Sub Tareas
Criterios de aceptación
Requerimientos
Dependencias
Definition of Ready - DoR
Definition of Done - DoD - Desarrollo