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.
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
.
É 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.
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).
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.
Share your suggestions with us!
Click here and then [+ Submit idea]