Call Webhook: Como fazer chamadas para sistemas externos
Atualizado
por Caique Main
O que é uma API?
A sigla API corresponde às palavras em inglês “Application Programming Interface”. No português “Interface de Programação de Aplicações”. Elas são uma forma de integrar sistemas, possibilitando benefícios como a segurança dos dados e facilidade no intercâmbio entre informações.

Atualmente, a capacidade de poder se conectar e integrar com outros sistemas é uma funcionalidade essencial para a maioria das soluções hoje em dia. Por isso, temos uma carta de ação para utilizar nos fluxos justamente para essa função: Call Webhook
Call Webhook
A carta de Call Webhook é a responsável pela conexão entre a Weni Plataforma e outros sistemas externos, abaixo, temos um pouco sobre a anatomia dela:

- Método da requisição: Onde você define qual vai ser o método para a sua requisição de API (GET, POST, PUT ou DELETE);
- URL da requisição: Onde você coloca a URL da requisição para a API;
- Cabeçalho da requisição: Onde você coloca o cabeçalho da requisição junto com informações como tokens de autorização e tipos de conteúdo;
- Corpo da requisição: Onde você adiciona um corpo para sua requisição (usado para POST e PUT);
Como formatar o corpo da requisição corretamente
Normalmente, para o corpo de requisições POST e PUT utilizamos a notação JSON para enviar as informações solicitadas pela API. Abaixo, segue o exemplo de um corpo em JSON:
{ "platform":"push", "author":"john" }
Como podemos reproduzir essa notação utilizando a carta Call Webhook? Na plataforma, utilizamos as funções @json e @object
para esta construção, sendo a primeira para sinalizar qual notação iremos traduzir os valores, e a segunda para sinalizar o começo e fim das nossas chaves. Traduzindo o exemplo acima para a notação utilizada na plataforma, temos:
@(json(object("platform","push","author","john")))
Caso você queira usar alguma variável como, por exemplo, @contact.name
para o campo "author" do nosso exemplo, temos:
@(json(object("platform","push","author",contact.name)))
O corpo da requisição aceita todas as variáveis e expressões suportadas na plataforma.