V10 RecursosWeb API
RecursosWeb API
Web API
Voltar | Lista de artigos

Como gerir o controlo sobre os requests na WebAPI?

Última alteração a 21/09/2023

A WebAPI é uma peça tecnológica bastante extensível, que permite a utilização das extensões da API existente do ERP para facultar a criação de métodos REST que reaproveitam os mecanismos de segurança existentes.

Este mecanismo é mais uma peça de extensão que permite aos programadores bloquear o envio do request. Poderá ser útil quando se pretende adicionar mecanismos de segurança sobre a forma como os pedidos são efetuados/bloqueados.

Procedimento

Pré-requisitos

  • PRIMAVERA ERP com Web API instalada, atualizada e licenciada
  • Visual Studio & .NET Framework 4.7.1

Passo 1 - Criar o projeto

Primeiro, é necessário criar um projeto com o Visual Studio de forma a criar uma classe que acrescente mais funcionalidades. Este projeto deve ser do tipo Class Library (.NET Framework).

Passo 2 - Referências

As seguintes referências devem ser adicionadas ao projeto:

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

Passo 3 - Codificação

No projeto recém-criado, deve ser adicionada uma nova classe, por exemplo:

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;
        }
    }
}

Passo 4 - Compilação e deployment

Depois de executar os passos anteriores com sucesso, deve compilar o projeto.

No output do projeto será gerada a assembly que terá de ser copiada para a pasta da Web API, que geralmente é a pasta: "PRIMAVERA/SG100/Apl/WebApi/bin/Extensions".

Conclusão

Este é mais um mecanismo de extensão a esta peça que, por si só, já era altamente extensível e que proporciona um maior controlo sobre os requests realizados à WebAPI.

Adicionar aos favoritos ou partilhar este artigo
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!
Artigos Relacionados
Utilizar o Postman para testar a WebAPI Formato dos pedidos Web API ERP10 Características da Web API Como executar listas na WebAPI? Web API - Conceitos e Arquitetura