Fala pessoal, tudo bem?
Recentemente precisei desenvolver um fluxo que envolvia o consumo de dados via API para gerar menus dinâmicos durante a jornada. O problema é que, para alguns endpoints, o retorno era simplesmente grande demais e meus scripts acabavam dando erro ao tentar acessar a informação - A Blip estava convertendo esses retornos grandes em { “REDUCED”: true }
Eu sei que isso é algo que deixa muito desenvolvedor revoltado na hora de criar fluxos que exigem uma integração com APIs mais complexas, então eu resolvi trazer uma solução que me ajudou bastante por aqui.
A ideia é bem simples: ao invés de usar a ação de Requisitar HTTP, vamos fazer o consumo da API diretamente via ação de Executar Script 2.0 e já tratar os dados, retornando apenas as informações necessárias para o seguimento do fluxo. No meu caso: eu faço a requisição e já trato para que o script me devolva os menus como eu preciso.
Aqui vai um exemplo:
async function run() {
try {
var response = await request.fetchAsync(
'{{sua_url_aqui}}', {
'method' : 'GET', //o método GET, POST, PATCH
'headers' : { //seus campos de header aqui
'Content-Type' : 'application/json',
'Authorization': "{{authorization_key}}"
} //caso necessário, basta adicionar o body aqui
});
const dados = JSON.parse(response.body);
// agora é só tratar os dados da forma como voce precisa
} catch (e) {
return e.message;
}
}
Espero que ajude! 😉