Cotação do dólar com JavaScript

Cotação do dólar com JavaScript

Você vai aprender neste artigo como consumir dados de uma API pública para obter o valor da cotação do dólar com JavaScript.

O consumo desta API será feito apenas com JavaScript, sem utilizar nenhuma biblioteca.

O Banco Central do Brasil possui um site chamado "dados abertos" com APIs de uso geral referentes a vários indicadores financeiros.

https://dadosabertos.bcb.gov.br/

Vamos consumir a API referente a cotação do dólar, o link para você consultar as opções disponíveis é este:

https://bit.ly/2KKXKuy

Será necessário informar:

1 - O serviço que desejamos utilizar

2 - Uma data no formato mês-dia-ano.

3 - O formato da resposta. Por padrão a resposta é uma string no formato JSON.

Um exemplo de como acessar:

https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarDia(dataCotacao=@dataCotacao)?@dataCotacao='11-21-2019'&$format=json

Para fazer a comunicação, utilizamos uma instância do objeto XMLHttpRequest.

let request = new XMLHttpRequest();

request.open('GET', minha_url, true);

request.send();

O primeiro parametro é o método de comunicação (GET ou POST) e o segundo é a URL que vamos acessar.

Feita a conexão, o objeto request passa a armazenar o resultado da conexão.

O objeto request tem um método chamado "onload", que vai ser chamado quando houver um retorno.

Vamos verificar se houve a conexão com sucesso. Para isso o objeto request possui um método chamado "readyState", que retorna um número inteiro com o resultado da conexão. As respostas possíveis são:

0 - UNSENT - Um cliente foi criado. Mas o método open() não foi chamado ainda.

1 - OPENED - O método open() foi chamado.

2 - HEADERS_RECEIVED - O método send() foi chamado e os cabeçalhos e status estão disponíveis .

3 - LOADING - Baixando e responseText contem os dados parciais.

4 - DONE - Operação concluída.

Se a operação estiver concluída, vamos receber o status HTTP da requisição. Precisamos receber um status HTTP de código 200, que é o status recebido quando é enviada uma resposta sem erros.

request.onload = function() {

    if (request.readyState == 4 && request.status == 200) {

//Sucesso

}

}

Os dados recebidos da API ficam disponívels no método responseTexT. Devemos converter este texto num objeto JSON.

console.log(JSON.parse(request.responseText));

Um exemplo de conteúdo:

{"@odata.context":"https://was-p.bcnet.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata$metadata#_CotacaoDolarDia",

"value":[{"cotacaoCompra":4.20060,"cotacaoVenda":4.20120,"dataHoraCotacao":"2019-11-21 13:03:40.946"}]}

Dentro deste JSON, existe um array de objetos dentro do campo "value". Como fizemos o filtro por 1 data, o array vai ter apenas uma posição.

var resposta = JSON.parse(request.responseText);

var valores = resposta.value[0];

Agora será possível recuperar a informação da cotação do dólar:

console.log(valores.cotacaoCompra);

console.log(valores.cotacaoVenda);

console.log(valores.dataHoraCotacao);

Segue abaixo o código completo:

var url = "https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarDia(dataCotacao=@dataCotacao)?@dataCotacao='11-21-2019'&$format=json";

let request = new XMLHttpRequest();

request.open('GET', url, true);

request.onload = function() {

if (request.readyState == 4 && request.status == 200) {

var resposta = JSON.parse(request.responseText);

var valores = resposta.value[0];

console.log(valores.cotacaoCompra);

console.log(valores.cotacaoVenda);

console.log(valores.dataHoraCotacao);

};

request.onerror = function() {

          console.log("Erro:"+request);

};

request.send();

 

Está começando e deseja saber o que precisa estudar de HTML e JavaScript? Não deixe de conferir os roteiros de estudo de HTML e JavaScript!. São dezenas de conteúdos para você melhorar suas habilidades.

Roteiro de estudos - HTML e CSS

Roteiro de estudos - Javascript

 

Outros conteudos que podem ser de seu interesse

Criando gráficos com amCharts
01/06/2020JAVASCRIPT

Criando gráficos com amCharts

Veja como criar gráficos com JavaScript utilizando a biblioteca amCharts

Saiba mais...
Desafiando os seus conhecimentos de JavaScript
27/06/2021JAVASCRIPT

Desafiando os seus conhecimentos de JavaScript

Aceite os desafios e leve o seu conhecimento de JavaScript para outro nível

Saiba mais...

Conteúdo sobre banco de dados sem complicação!