APIficando ejemplo EcryptGenerator / KeyGenerator

 


Bueno, hace ya casi tres meses que no he publicado nada, y es porque no he parado....

El 22 de octubre fue el Appeon Summit Spain en Madrid, donde tuve la oportunidad de participar en una mesa redonda y preparar una exposición, ¡y se me han quedado varias ideas pendientes de compartir!

Hoy, siguiendo uno de mis ejemplos sobre encriptación y generación de claves, he querido convertirlo en una API en .NET 6 con C#.

Esto ofrece varias utilidades: además de aprender algunos conceptos sobre APIs, nos permite implementar un sistema de encriptación compatible con PowerBuilder, .NET 6, y otros frameworks como React Native.

Para este ejemplo, he modificado el proyecto en PowerBuilder para que no usara funciones nativas de encriptación. En lugar de ello, he utilizado el objeto RestClient para hacer llamadas a una API externa que ahora realiza todo el trabajo.

Recomendaciones Previas

Para entender mejor el contexto de este ejemplo, recomiendo leer los siguientes artículos:

1-  EncryptGenerator

2 - keyGenerator

Conversión de la Aplicación

La conversión se centra en los objetos n_cst_security y n_cst_key_generator, los cuales ahora, en lugar de contener la funcionalidad directamente, utilizan RestClient para delegar la lógica a la API. Cada objeto tiene como variable de instancia la URL de la API, permitiendo que cada servicio se aloje en APIs distintas si así se requiere.

Además, he añadido una variable de instancia para el controlador, lo que facilita la construcción de la URL para cada llamada de manera sencilla.

Estructura Comparativa

Si vemos la estructura de la App es práctimanete idéntica, para este caso he tenido que crear un nvo_coderobject y y nvo_jsongenerator para ayudarme con las llamadas a la api:



Por no extenderme mucho os voy a enseñar como he convertido la función of_validar del objeto n_cst_key_genearator, ya que es la función mas corta que nos sirve de ejemplo para todas las demás.

Aqui podemos ver como hemos Cambiado la función en PowerBuilder:

Con este nuevo nuevo enfoque, en lugar de que PowerBuilder genere la lógica internamente, hacemos una llamada a la API para enviar la clave que queremos validar.

Controlador en la API

En la API, el controlador se encarga de gestionar la recepción de los datos enviados desde PowerBuilder. Es de tipo Post, con lo que le voy a enviar un json en el cuerpo del mensaje con la clave a validar codificada en base64 Url.


Implementación Servicio

Finalmente, el controlador invoca el servicio correspondiente, que contiene la lógica de la operación de validación de claves. Para que una clave sea correcta ha de contener al menos una letra mayuscula, una minuscula, un carácter especial y un número.


Conclusión

Con esta conversión, no solo hemos mejorado la modularidad y reutilización de nuestro código, sino que también hemos establecido un puente de comunicación entre PowerBuilder y .NET 6 a través de APIs, lo que permitirá una mayor flexibilidad y escalabilidad en nuestros proyectos futuros.

Si estás interesado en el código y en cómo implementé estas soluciones, puedes encontrar los proyectos en GitHub:

¡Espero que este artículo te haya sido útil y que te animes a experimentar con estas tecnologías! Si tienes preguntas o comentarios, no dudes en dejarlos.



Comentarios

Publicar un comentario