Reaproveitamento de requisições de Integrações
- 14/06/2024
A API de Integração realiza de uma única vez todas as requisições especificadas como em Execução, pela tela de Integrações.
Na execução das requisições “Eventos de Execução” (Tocando, Atendida e Desligada), o retorno de cada tipo de evento é reutilizado na execução do próximo evento ou no mesmo evento.
Por exemplo: Após o processamento de um evento (chamada) Tocando é gerada uma lista contendo todas as respostas. Essa lista de respostas é atualizada a cada requisição e os dados que são repetidos nessa lista são sempre atualizados.
Quando executado o próximo evento (chamada) Atendida, a lista gerada do primeiro evento (Tocando) é gerada novamente (com registros do Banco de Dados, respeitando a ordem de execução), e utilizada/atualizada na execução do evento atual (Atendida).
O mesmo vale para o evento (chamada) Desligada. Na execução de cada evento, essa lista de respostas é retornada no JSON com o nome de response.
A regra só é aplicada quando os objetos de retorno das requisições forem dos tipos chave e valor.
Existe a possibilidade de uso de valores retornados em um JSON que contenha vários objetos e array, que é mantido em memória para utilização mesmo estando em grupo diferente.
Além disso, quando a configuração de um “Evento de Execução” da tela de Integrações for definida com o parâmetro de abrir em Nova aba de navegação, a execução não será feita no backend. Neste cenário, retornará URL’s devidamente formatados com seus parâmetros, no corpo do JSON para serem utilizados pelo frontend.
ATENÇÃO !
A estrutura do Evento de execução é composta por evento–de–execução.ordem–de–execução.records [].Objeto.elemento. Sempre separada por “.” .
O exemplo a seguir é uma demonstração da estrutura que deve ser aplicada para que o reaproveitamento de requisições funcione corretamente:
RINGING.1.records[].Account.id
- RINGING: Tipo de Evento de Execução em que é retornado o objeto JSON. São aceitos RINGING (Tocando), ANSWERED (Atendida) e HANGUP (Desligada).
- Número 1: Representa a ordem do Evento de execução.
- records[]: Objeto do tipo array. Pode estar vazio, cenário em que será interpretado o primeiro elemento. Ou pode conter um valor, especificando qual a posição do elemento. Por exemplo: [3].
- Account: O termo Account (conta) é um exemplo de nome de objeto. Poderia ser outro, como Adress (endereço).
- id: Elemento contido no objeto Account (valor que será utilizado).
Observação: Uma requisição Atendida poderá utilizar-se da configuração de Tocando. Assim como uma requisição de chamada Desligada poderá utilizar-se das configurações de Tocando e/ou Atendida. O reaproveitamento segue a ordem de eventos.
Esse novo padrão também será aceito para ser utilizado em URL: http://172.31.16.35:8888/api/v2/unity-fake-api/integration/patch-01/{{RINGING.1.records[].Account.id}}
Para formato de variável em URL, sempre utilize entre {{ }}.