1
resposta

Qual foi o objetivo de tudo o que foi feito nessa aula?

Olá não entendi absolutamente nada do propósito do que está sendo feito, ou porque teve essa sequencias de negociações, e o que elas significam. Alguém poderia me explicar do que se trata?

.then(negociacoesDeHoje => {
                for (let negociacao of negociacoesDeHoje) {
                    this.negociacoes.adiciona(negociacao);
                }
1 resposta

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