Proxy Overview

Está implementado en la plataforma .NET Standart por motivos de compatibilidad con otras plataformas. Se utiliza esta interfaz de comunicación para evitar la necesidad de implementar para cada aplicación su propio método de conexión con el servidor web de servicios.
El proxy hace uso de la clase base BaseProxy en donde el elemento fundamental es de tipo HttpClient, clase interna de .NET que permite enviar solicitudes HTTP y recibir respuestas de un recurso identificado por un URL. El cliente http está configurado con un modificador de acceso readonly por lo que una vez inicializado no será modificado durante todo el tiempo de vida de la aplicación, además, se instancia un solo cliente http durante todo este tiempo para evitar cualquier problema de rendimiento en la aplicación. En la clase base se encuentran también implementados varios métodos que hacen uso de las operaciones básicas de HTTP que son get, post y put.
Antes de poder consumir cualquier tipo de servicio web disponible en el sistema, primero hay que hacer login con el servicio, para esto se envía una solicitud de login a través del proxy, la cual incluye nombre de usuario, contraseña, tenant, nombre de base de datos, etc., una vez validada la información de esa solicitud, el servidor devuelve en su respuesta un token, el cual consiste de una serie de caracteres que contienen de forma encriptada toda la información relativa al usuario que acaba de autenticarse, su nombre de usuario, permisos, roles, etc., de tal manera que las solicitudes subsiguientes que se hagan en el servidor, llevarán siempre en el header de la solicitud ese token. Si se llega a enviar al servidor una solicitud sin ese token, esta será denegada. Adicionalmente al token, existen otros parámetros que también se envían en el header de autorización de la solicitud, que surgen de las diferentes formas de tenencia múltiple que están implementadas en el sistema, que son el nombre de la base de datos, la sucursal y el identificador del tenant.
Cuando se genera un token, viene con un tiempo de vida limitado. Por lo tanto, para que el usuario siga accediendo a los recursos del sistema, se tiene que obtener uno nuevo. Para cumplir con esta función se genera un token de refrescamiento o RefreshToken.
A continuación, se muestra el esquema de comunicación que existe entre las aplicaciones clientes con el Proxy, el cual actúa como intermediario con el servidor web, donde están alojadas todas las capas de servicios que ya fueron mencionadas, este servidor extrae la información de la base de datos y presenta los resultados de vuelta al proxy y finalmente a las aplicaciones que hicieron la solicitud.

Created with the Personal Edition of HelpNDoc: Create help files for the Qt Help Framework