Olá, Diego! Tudo bem? Vamos resolver isso.
O objetivo principal da aula é demonstrar como consumir uma API externa utilizando TypeScript, garantindo a tipagem correta dos dados recebidos. A sequência de negociações serve para transformar os dados brutos da API em objetos Negociacao
, que são utilizados na aplicação.
Para deixar mais claro, vamos recapitular os passos principais:
Requisição à API:
Utilizamos a fetch API
para fazer uma requisição GET
para o endereço da API (http://localhost:8080/dados
).
A fetch API
retorna uma Promise que resolve com a resposta da API.
fetch('http://localhost:8080/dados')
.then(response => response.json())
.then(dados => {
// Processamento dos dados
});
Este código faz uma requisição para a API e converte a resposta para JSON.
Conversão para JSON:
A resposta da API é convertida para JSON utilizando o método response.json()
.
Este método também retorna uma Promise que resolve com os dados em formato JSON.
Tipagem dos dados:
Como não sabemos o tipo dos dados que vêm da API, inicialmente utilizamos o tipo any
para representar os dados.
Em seguida, utilizamos o método map
para transformar cada item do array de dados em um objeto Negociacao
.
.then((dados: any[]) => {
return dados.map(dado => {
return new Negociacao(new Date(), dado.vezes, dado.montante);
});
});
Neste código, cada item do array dados
é transformado em um objeto Negociacao
.
Criação de objetos Negociacao:
Para cada item do array de dados, criamos um novo objeto Negociacao
com a data atual, o número de vezes e o montante.
Os dados da API (vezes
e montante
) são passados como argumentos para o construtor da classe Negociacao
.
Atualização da view:
Após transformar os dados da API em objetos Negociacao
, atualizamos a view para exibir os dados na tela.
Utilizamos o método negociacaoView.update(this.negociacoes)
para atualizar a view com os novos dados.
.then(negociacoes => {
negociacoes.forEach(negociacao => this.negociacoes.adiciona(negociacao));
this.negociacaoView.update(this.negociacoes);
});
Neste código, adicionamos cada negociação ao array negociacoes
e atualizamos a view.
Uma analogia para entender melhor:
Imagine que você está pedindo comida em um restaurante.
A API é como o cardápio do restaurante, que lista os pratos disponíveis.
Quando você faz o pedido (fetch
), o restaurante prepara a comida (processamento da API) e te entrega (resposta da API).
Você então organiza a comida no seu prato (transformação dos dados) e a come (exibição na view).
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado