V10 RecursosWeb API
RecursosWeb API
Web API
Años | List of Articles

¿Cómo gestionar el control de los requests en la WebAPI?

Última modificación el 03/05/2024

La WebAPI es una pieza tecnológica bastante extensible que permite utilizar extensiones de la API existente del ERP para facilitar la creación de métodos REST que reutilicen los mecanismos de seguridad existentes.

Este mecanismo es otra extensión que permite a los programadores bloquear el envío del request. Puede ser útil cuando se desee añadir mecanismos de seguridad a la forma en que se realizan/bloquean las peticiones.

Procedimiento

Requisitos previos

  • PRIMAVERA ERP con Web API instalada, actualizada y con licencia
  • Visual Studio & .NET Framework 4.7.1

Paso 1 - Crear el proyecto

En primer lugar, debe crear un proyecto con Visual Studio para poder crear una clase que añada más funcionalidad. Este proyecto debe ser del tipo Class Library (.NET Framework).

Paso 2 - Referencias

Las siguientes referencias deben ser añadidas al proyecto:

  • ErpBS100.Dll
  • StdPlatBS100.Dll
  • Primavera.WebAPI.Extensions.Dll

Paso 3 - Codificación

En el proyecto recién creado debe añadirse una nueva clase, por ejemplo:

namespace Primavera.WebAPI.MessageHandler
{
    /// <summary>
    /// Extension point to interact with WebAPI
    /// </summary>
    public class CustomMessageHandler : ICustomMessageHandler
    {
        /// <summary>
        /// Allow or deny the request
        /// In case of denial the user will receive a Forbidden message: 403.
        /// </summary>
        /// <param name="request">The request message.</param>
        /// <returns>True when the call will continue, else the user will receive a Forbidden.</returns>
        public override bool CanDispatchesRequest(Uri requestUri)
        {
            // this.PSO => Platform instance
            // this.BSO => API Instance
            // Neste exemplo todos os pedidos efetuados ao Uri que contenha /Base/Artigos são bloqueados
            if(requestUri.AbsolutePath.Contains("/Base/Artigos"))
            {
                return false;
            }
            return true;
        }
    }
}

Paso 4 - Compilación y deployment

Tras realizar con éxito los pasos anteriores, debe compilar el proyecto.

En la carpeta output del proyecto se generará la assembly que deberá copiarse en la carpeta Web API, que suele ser la carpeta: "PRIMAVERA/SG100/Apl/WebApi/bin/Extensions".

Conclusión

Se trata de un mecanismo de extensión más para este software, que ya era muy extensible de por sí y que proporciona un mayor control sobre las requests realizado a la WebAPI.

Bookmark or share this article
Esta página foi útil?
Obrigado pelo seu voto.

login para deixar a sua opinião.

Obrigado pelo seu feedback. Iremos analisá-lo para continuarmos a melhorar!