Introdução:
Os métodos http que modificam os dados (por exemplo, POST) no sistema requerem um token CSRF para publicar corretamente os dados. No último patch do S/4 Hana, que segue uma regra CSRF rigorosa, precisamos configurar o cookie junto com o token CSRF. Portanto, obter o token CSRF e o cookie a cada vez da API GET e passá-los para o cabeçalho do método POST é uma tarefa tediosa. Neste post do blog, veremos como podemos usar uma "Variável" no Postman para automatizar a chamada à API POST.
Esta é uma continuação do post do blog "
Erro de validação do token CSRF no método POST no cliente do Gateway
". Se você estiver recebendo o erro mencionado, por favor, consulte o post do blog para a solução.
Configurando o cenário:
-
Um OData foi criado no sistema S/4 Hana no Service Builder do Gateway (T-Code: SEGW). Criamos 2 APIs OData.
-
A primeira API é usada para obter o token CSRF e o cookie. A maioria de nós prefere obter o token CSRF e o cookie usando a mesma API que publica os dados. (Prefiro ter um serviço separado que possa ser usado para obter o token CSRF e o cookie de forma centralizada por todos os consumidores de serviços).
-
A segunda API é usada para publicar os dados no Gateway. O token CSRF e o cookie obtidos na API anterior serão passados para o cabeçalho da solicitação.
-
Usaremos a famosa ferramenta "Postman" para testar nossa API. Mais informações sobre a ferramenta podem ser encontradas
aqui
. Se você ainda não tem a ferramenta, sinta-se à vontade para baixá-la e instalá-la a partir
aqui
. Você também pode usar a versão web. Para este post do blog, usarei o aplicativo Postman instalado no meu sistema.
-
Para automatizar a solicitação POST, usaremos a "Variável de ambiente" do Postman. A variável será definida a partir do cabeçalho de resposta GET e será usada no cabeçalho da solicitação POST para o token CSRF e o cookie. Por favor, continue lendo para descobrir como fazer isso.
Vamos lá:
Ambiente do Postman:
Precisamos criar o ambiente no Postman onde podemos definir a variável de ambiente. Geralmente uso o Postman para validar o OData que foi criado no Service Builder do Gateway da SAP (T-Code: SEGW). Portanto, criarei um único ambiente "SAP Gateway" e o usarei em todas as coleções para validar os serviços OData desenvolvidos.
Coleção do Postman:
A coleção do Postman é a coleção de APIs que estão agrupadas logicamente em uma unidade. Por exemplo, a Integração de Tempo de HCM pode ser uma coleção que contém todas as APIs necessárias para a Integração de Tempo.
Passo 1: Criar Ambiente no Postman:
Vá para a aba "Ambiente" no Postman e clique em "Criar Novo Ambiente" (botão de adição em destaque) e forneça um nome
(Criação de ambiente no Postman)
Passo 2: Criar Variável de Ambiente:
Vamos definir os valores do token CSRF e do cookie. Portanto, criaremos duas variáveis, uma para conter o valor do token CSRF e outra para o cookie. Após criar a variável, por favor, clique em "salvar".
(Criar variáveis de ambiente no Postman)
Passo 3: Criar Coleção:
Agora, vamos criar uma coleção chamada "Integração de Tempo" onde adicionaremos 2 solicitações.
-
A primeira será a solicitação "GET" que será usada para obter o token CSRF e o cookie
-
A segunda será usada para "POST" os detalhes de assistência para o sistema S/4 Hana através do Gateway