Migração de sintaxe v2 para v3
Resumo
Neste guia, exploraremos as mudanças na sintaxe necessárias para migrar do padrão da versão v2.0 para a versão v3.0 ao acessar dados dentro de um fluxo de processamento.
TL;DR
Anteriormente, onde usávamos .state para acessar o JSON do payload de entrada ou acessar o resultado de um passo, agora usamos .input.body para o JSON de entrada ou .steps.<nome_do_passo>.body para o resultado de um passo.
Já para acessarmos os headers e query parameters, .input.headers e .input.query_params respectivamente.
Alterações na sintaxe
Exemplo de uso detalhado
Considere um exemplo prático onde um fluxo é disparado via Gateway Fluid com a seguinte URL e JSON de entrada (payload):
{
"payload_campo_1": "valor do payload de entrada",
"payload_campo_2": {
"msg": "valor do payload de entrada"
}
}Considere que um passo chamado passo_1 tenha gerado o seguinte resultado:
{
"campo_1": "resultado do campo 1",
"campo_2": "resultado do campo 2"
}Acesso aos dados de entrada
Na versão 2.0, os dados do JSON (body) de entrada eram acessados usando .state. Na versão 3.0, isso foi refinado para melhor refletir a origem dos dados, utilizando .input.body.
Agora a forma para recuperar o campo payload_campo_1 do body do webhook/evento de entrada/disparo do fluxo na versão 3.0 é:
{{.input.body.payload_campo_1}}Onde, anteriormente na versão 2.0 usávamos:
{{.state.payload_campo_1}}Acesso a Headers e Query parameters do payload de entrada
Com a atualização para a v3.0, é possível acessar os headers utilizando .input.headers e os query parameters utilizando .input.query_params.
Exemplo para acessar os headers:
{{.input.headers | toJson}}Ou para acessar diretamente um header específico:
{{.input.headers.Authorization}}Caso o header (ou nome do passo, query param, etc) contenha algum caractere especial como hífen -, acesse com a seguinte sintaxe:
{{index .input.headers "Content-Type"}}Exemplo para acessar os query parameters:
{{.input.query_params}}Ou acessar um parâmetro específico:
{{.input.query_params.cod_cliente}}Acesso ao resultado de um passo do fluxo
Em relação ao resultado gerado pela execução de um passo específico no fluxo, a sintaxe também evoluiu. Na versão v2.0, costumávamos usar .state.<nome_do_passo> para acessar o body do resultado desse passo. Na versão v3.0, adotamos uma abordagem mais estruturada com .steps.<nome_do_passo>.body.
{{.steps.passo_1.body}}Onde anteriormente usávamos:
{{.state.passo_1}}Para acessar um resultado específico (campo_x) dentro do resultado do passo_1, na versão 3.0, utilize o exemplo conforme abaixo:
{{.steps.passo_1.body.campo_x}}Onde a sintaxe antiga v2.0 era:
{{.state.passo_1.campo_x}}Acesso a Headers e Query parameters do passo
Da mesma forma, é possível utilizar os dados para ter acesso aos headers utilizando .steps.<nome_do_passo>.headers e os query parameters utilizando .steps.<nome_do_passo>.query_params em um passo.
Exemplo para acessar os headers de um passo:
{{.steps.passo_1.headers | toJson}}Ou:
{{index .input.headers "Content-Type"}}Exemplo para acessar os query parameters:
{{.steps.passo_1.query_params}}Ou:
{{.steps.passo_1.query_params.cod_cliente}}Conclusão
Esta atualização na sintaxe é crucial para garantir a compatibilidade e eficácia na manipulação de dados em ambientes de processamento de fluxo. Certifique-se de ajustar seus templates de acordo com essas novas orientações para aproveitar ao máximo os recursos da versão v3.0. Ao adotar essa nova abordagem, você estará alinhado com as melhores práticas e garantirá uma transição suave para a versão mais recente do sistema de processamento de dados.