Data

15 jul, 2020

Recebendo Api REST com Pentaho – Spoon

Publicidade
image

Vou demonstrar como receber um serviço REST, usando campos vindos de um CSV. Você pode substituir o CSV por uma conexão a uma tabela no seu Banco de Dados, ou se o parâmetro passado ao Webservice for fixo, o mais recomendado é usar o step Data Grid. O corrêio possui um serviço, para pegar os endereços por CEP, mas é um pouco burocrático, então vamos usar um projeto gratuito (https://viacep.com.br/).

Briefing

Receberemos uma lista de CEPs, vindos de cep.csv. Vamos consultar um a um e dar saída no log da aplicação.

Figura 1 - Lista de CEPs em CSV
Figura 1 – Lista de CEPs em CSV

Executando

1.º Step do Input

Adiciona a entrada pra ler o cvs, vamos usar Text file input

Figura 2 - Text file input
Figura 2 – Text file input

2º Inserindo CSV

Em File or directory coloque onde está o .csv e depois clica em Add para adicionar a lista, conforme a imagem abaixo. O mais aconselhaver é usar o caminho relativo ${Internal.Entry.Current.Directory}. Usando as teclas Ctrl + Espaço você consegue localizar o ${Internal.Entry.Current.Directory}.

Figura 3 - Adicionando o CSV ao ETL
Figura 3 – Adicionando o CSV ao ETL

2.1º Obtendo campos do CVS

Não vamos mexer nas demais abas, por isso vou pular direto para a aba Fields. Nesta aba, clique em Obtem campos, neste momento o Spoon vai ler o csv e adicionar na lista.

Figura 4 - Obtendo campo do cvs
Figura 4 – Obtendo campo do cvs

Também é possível clicar em Preview rows para verificar se o Spoon está lendo o arquivo corretamente.

Figura 5 - Preview
Figura 5 – Preview

3º Adicionando as constantes

Vamos adicionar as constantes: url e json, que serão endereço do serviço https e a segunda constante será o que virá após a nossa variável CEP. O serviço que vamos usar nessa demonstração, usa o seguinte formato: Endereço(url) / cep / tipo(json).

Figura 6 - Adicionando as constantes
Figura 6 – Adicionando as constantes

4º Concatenando campos

Adicionando Calculator para concatenar os campos. Lembra do formato no nosso serviço? Então o forma será A / B / C para montar nossa consulta a API. em Novo campo coloca o nome do campo que vai receber a concatenação, em Cálculo escolha a opção A + B + C, em Campos ACampos B e Campos C será o formato usado pelo serviço, conforme esplanado anteriormente. Por último em Tipo do valor será String

Figura 7 - Concatenando
Figura 7 – Concatenando

5º Consumindo serviço REST

Nesse step vamos consumir o serviço REST, só usaremos a primeira aba, pois o serviço é simples, sem a necessidade de qualquer proteção, como autenticação ou SSL.

Siga a imagem abaixo. Em URL field name vai entrar o nome do campo que irá receber a concatenação da etapa anterior. Em Result field name coloca o nome do campo que irá na saída.

Figura 8 - Consumindo REST
Figura 8 – Consumindo REST

6º Recebendo o resultado

Agora vamos receber o resultado do serviço REST da etapa anterios.

Na primeira aba File em Select field escolha o nome do campo de saída que você colocou na etapa anterior (REST client)

Figura 9 - Recebendo REST
Figura 9 – Recebendo REST

Na aba Fields, vamos determinar quais campos queremos receber do serviço. Em Name escreva o nome que deseja dar para cada campo, em Path você precisa colocar “$.” seguido no nome que está vindo do serviço. O botão Select fields nem sempre funciona, então não se preocupe com isso.

Figura 10 - Determinando campos
Figura 10 – Determinando campos

7º Mostrando os resultados

Vamos pegar nossa consulta ao serviço REST e jogar no log da aplicação. Você pode fazer isso para acompanhar o resultado antes de inputar na sua tabela ou em outro lugar.

Clicando em Obtem campos todos os campos que serão apresentados no resultado será listado em Field, mas você pode excluir quantos quiser.

Figura 11 - Escolhendo o que deseja ver no resultado
Figura 11 – Escolhendo o que deseja ver no resultado

8º Executando o ETL

Ao executar o ETL, nosso resultado será mostrado na tela de Logging conforme as duas imagens a seguir.

Figura 12 - Resultado no Log
Figura 12 – Resultado no Log
Figura 13 - Resultado no Log
Figura 13 – Resultado no Log

Debriefing

Conforme visto, podemos consumir e tratar um serviço REST sem grandes dificuldades, até mesmo se esta não for aberta, usando restrições de segurança.

Figura 14 - Steps
Figura 14 – Steps

Baixar arquivo .csv e .ktr