udistrital / autenticacion_mid

0 stars 0 forks source link

Wrappers de Go para X-Ray #72

Open milo19980525 opened 11 months ago

milo19980525 commented 11 months ago

Se requiere revisar la implementación de Wrappers en las API mid y crud de cumplidos DVE, para que al hacer uso de las funciones de X-Ray solo sea necesario llamar la envoltura.

Especificaciones técnicas

  1. https://medium.com/codex/golang-wrapper-for-receiver-function-277921d93edd
  2. https://levelup.gitconnected.com/wrappers-and-decorators-in-golang-c8cbe1359932

Sub Tareas

Criterios de aceptación

Requerimientos

Dependencias

Definition of Ready - DoR

Definition of Done - DoD - Desarrollo

a52290451 commented 11 months ago

Se realiza la implementación del método "InsertFilter" del Framework "Beego", que permite insertar sentencias o fragmentos de código para que se ejecuten antes o después de ejecutar los controladores de una API, lo cual es útil en este caso ya que permitió realizar la apertura de segmentos y subsegmentos para capturar las trazas en cada caso y enviarlas a AWS XRay.

Se realizan las siguientes mejoras:

  1. Limpieza de código en APIs Cumplidos_dve_mid y Cumplidos_dve_crud.

  2. Inclusión de archivo "xray.go" en repositorio utils_oas.

image

  1. Inicialización de xary en APIs, a través del archivo main.go.

image image

  1. Ajuste y reducción de código en archivo "utilidades.go" en APIs.

image

  1. Pruebas funcionales consumiendo xray de utils_oas.

image image

Resumen: Se logró reducir el código necesario para implementar XRay en las APIs a simplemente importar el paquete "/utils_oas/xary" e inicializar el servicio en el archivo "main.go" y ajustar las peticiones request y response en el archivo "utilidades.go". En el caso de las APIs CRUD, solo es necesario realizar los ajustes en el archivo main.go. La implementación de XRay, al igual que otras funcionalidades transversales, queda reducida a consumir el servicio del repositorio "utils_oas".

Estado actual:

  1. La implementación en utils_oas de XRay ya se encuentra en la rama "Master".
  2. El consumo de XRay en las APIs y el ajuste de utilidades.go, no se encuentra desplegado en ambiente de pruebas.
a52290451 commented 11 months ago

Instrucciones para implementación de XRay en APIs MID:

  1. Se debe importar el paquete "github.com/udistrital/utils_oas/xray"" en el archivo "main.go":

image

  1. Inicializar xray a través del método "InitXRay", que recibe como parámetro el nombre del API, en el archivo "main.go" antes de iniciar la ejecución de beego con "beego.run":

tempsnip

  1. Importar los paquetes "github.com/aws/aws-xray-sdk-go/xray" y "github.com/udistrital/utils_oas/xray" de la siguiente forma:

image

  1. Ajustar los métodos "request" y "response" de las funciones del archivo "utilidades.go", para que pasen como parámetro el contexto de la petición y utilicen el cliente de xray. Se deben ver de la siguiente forma:

image

  1. Actualizar el archivo go.mod y go.sum para incluir los nuevos paquetes de XRAY y la nueva versión del paquete "utils_oas".

Instrucciones para implementación de XRay en APIs CRUD:

  1. Se debe importar el paquete "github.com/udistrital/utils_oas/xray"" en el archivo "main.go":

image

  1. Inicializar xray a través del método "InitXRay", que recibe como parámetro el nombre del API, en el archivo "main.go" antes de iniciar la ejecución de beego con "beego.run":

image

  1. Actualizar el archivo go.mod y go.sum para incluir los nuevos paquetes de XRAY y la nueva versión del paquete "utils_oas".
milo19980525 commented 11 months ago

https://github.com/udistrital/utils_oas/commit/984b26a9e449ce202e1f5b91ad5901d576c009c1