Transaction ID

O interceptor Transaction ID gera um identificador único para todas as transações ocorrentes em APIs cadastradas no Manager. Esse identificador único será inserido nas informações do Trace da chamada realizada com o objetivo de dar maior controle e individualidade à chamada feita.

How it works

Ao realizarmos uma chamada com o interceptor de Transaction ID, o gateway verifica se um valor foi passado no header ou no query param. Caso sim, o gateway popula o Trace com a informação passada; caso contrário, o próprio gateway gera um ID do tipo UUID (universally unique identifier) e o informa no Trace.

Configuring the interceptor

O interceptor só pode ser inserido no fluxo de requisição.

transaction id interceptor

Para configurá-lo, é necessário indicar onde o valor do ID será passado durante a requisição (Location) e o nome a ser usado para informar o valor.

O ID pode ser inserido no header ou query param. É a partir do nome informado que o interceptor irá encontrar o valor do identificador e inseri-lo nas informações da chamada.

No exemplo abaixo, estamos configurando um ID a ser enviado no header com o nome transaction-id.

transaction id modal
É possível inserir apenas um interceptor Transaction ID no fluxo de requisição. O sistema não permitirá a inserção de um segundo interceptor.

Exemplo de uso em uma requisição

Para ilustrar como esse interceptor deve ser usado em uma requisição, vamos tomar como exemplo uma chamada ao recurso /saldoEstoque de uma determinada API. Imaginemos também que a API contenha um interceptor de Transaction ID cadastrado no fluxo de requisição para o recurso mencionado configurando um identificador passado no header com o nome transaction-id. O valor do ID da transação em questão é 1f7e240b-e7fb-4e77-bafd-028affd673ac, como ilustrado abaixo.

transaction id call

Depois que a chamada for concluída, poderemos checar o o log do Trace da chamada através do Manager e verificar que o valor do ID está sendo exibido (em vermelho, na imagem de exemplo abaixo).

transaction id trace

Também temos como informação adicional o "Request ID" (em azul). Ele é um identificador de valor único para cada requisição. Ou seja, ele é gerado a cada chamada e não precisa ser passado durante a requisição. Já o "Transaction ID" só é alterado caso um novo valor seja passado na chamada, com o intuito de diferenciar a transação.

Thanks for your feedback!
EDIT
How useful was this article to you?