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

API REST em 30 segundos com NodeJS
30/12/2020JAVASCRIPT

API REST em 30 segundos com NodeJS

Nunca foi tão fácil prototipar uma API REST usando NodeJS

Saiba mais...
Separando um array de strings em conjuntos de arrays ordenados alfabeticamente com JavaScript
19/03/2023JAVASCRIPT

Separando um array de strings em conjuntos de arrays ordenados alfabeticamente com JavaScript

Veja várias formas de separar um array de string com JavaScript

Saiba mais...

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