🎉 SEMANA DO CONSUMIDOR

Últimos dias para comprar os cursos com 50% de desconto

Ver detalhes

Postado em em 18 de setembro de 2024

Você sabia que é possível construir um conversor de moedas com JavaScript? Aprenda a criar um sistema capaz de fazer a conversão de moedas em tempo real!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Conversor de Moedas com JavaScript

Nesta aula, vamos construir juntos um conversor de moedas utilizando JavaScript e Node.js.

Vou te mostrar como buscar, implementar e utilizar uma API de taxas de câmbio. Com ela, você será capaz de desenvolver um sistema que faz conversão de moedas de forma automática e em tempo real.

Você vai ver como é simples e prático criar o seu próprio conversor de moedas! Então, faça o download do material disponível e vamos começar!

O que é uma API?

 API (Application Programming Interface – Interface de Programação de Aplicações) é um conjunto de códigos, regras, protocolos e padrões que permitem a comunicação entre diferentes aplicações e sistemas.

Neste projeto, utilizaremos uma API para acessar os dados de conversão de moedas e aplicá-los ao nosso sistema.

Saiba mais: O que são APIs e WebAPIs – Diferenças e Importância

Obtendo uma Chave API – Exchange Rate API

Para acessar o serviço de algumas APIs, é necessário obter uma chave (API Key), que funciona como uma credencial exclusiva fornecida pelo serviço para que você possa utilizar suas funcionalidades.

No caso da Exchange Rate API, que utilizaremos neste projeto, você precisará de uma chave gratuita para autenticar as requisições e garantir o acesso aos dados e funcionalidades.

Para isso, basta acessar o site oficial da Exchange Rate e cadastrar o seu e-mail.

Exchange Rate API

Feito o cadastro, você só precisará criar uma senha. Depois, receberá um e-mail com um link para ativar sua conta e obter sua chave de API.

Chave da Exchange Rate API

Estrutura do Projeto

Nosso projeto será dividido em dois arquivos principais:

  • apiKey: Arquivo onde armazenaremos a chave da API, permitindo sua reutilização sem a necessidade de incluí-la diretamente no código principal.
  • conversor.mjs: Arquivo onde desenvolveremos o código principal do conversor de moedas.
Estrutura do Projeto

Armazenar a chave da API em um arquivo separado é uma prática recomendada, especialmente quando se compartilha o projeto com outras pessoas. Dessa forma, você pode compartilhar apenas o arquivo do conversor sem expor sua chave.

Arquivo apiKey – Chave da API

No arquivo apiKey, vamos criar uma variável chamada apiKey, que armazenará a chave fornecida pela Exchange Rate. Usaremos o comando export para permitir o uso dessa variável no arquivo principal do projeto.

Obs.: A chave de API precisa ser colocada entre aspas.

const apiKey = 'sua_chave_api_aqui';

export default apiKey;

Trabalhando com argv no Node.js

O Node.js oferece uma funcionalidade chamada argv, que permite capturar os argumentos passados pelo terminal durante a execução de um programa.

Esses argumentos são armazenados em um array, que pode ser acessado dentro do código.

Podemos usar esse array para acessar os elementos fornecidos ao script durante a execução. Para exemplificar, vamos criar um script simples que exibe os dois primeiros elementos de argv.

Vamos criar um arquivo separado chamado argvNoJs.mjs para desenvolver esse exemplo.

argv no Node.js

Neste arquivo, importaremos argv a partir do módulo node:process e criaremos uma função que exibirá o conteúdo de argv[0] e argv[1] usando console.log.

import { argv } from "node:process";

function usandoArgv() {
    console.log(argv[0]);
    console.log(argv[1]);
}

usandoArgv();

Agora, podemos executar o script no terminal para visualizar os resultados. Para isso, use o seguinte comando:

node ./argvNoJs.mjs
Executando o arquivo argv

Ao executar o script, você verá no terminal o caminho onde o Node.js está instalado e o caminho do arquivo que foi executado.

Isso acontece porque argv armazena cada argumento fornecido ao script em um array. O primeiro elemento (argv[0]) é o comando node e o segundo (argv[1]) é o caminho do arquivo.

Além desses dois elementos iniciais, argv pode armazenar múltiplos argumentos adicionais fornecidos na linha de comando. Vamos expandir o exemplo para incluir um terceiro argumento.

import { argv } from "node:process";

function usandoArgv() {
    console.log(argv[0]);
    console.log(argv[1]);
    console.log(argv[2]);
}

usandoArgv();

Agora, ao executar o script passando um terceiro argumento, como terceiroArgumento, você verá esse valor no terminal:

node ./argvNoJs.mjs terceiroArgumento
passando 3 argumentos na execução e visualizando o argv

A saída mostrará o caminho do Node.js, o caminho do arquivo e o valor de terceiroArgumento.

Essa funcionalidade será extremamente útil, pois permitirá que o usuário insira os códigos das moedas específicas que ele deseja converter dentro do nosso programa.

Criando o Conversor de Moedas com JavaScript – Requisição para API

Agora que já compreendemos como funciona o argv, vamos construir nosso conversor de moedas com JavaScript!

Primeiro, importe a chave da API (armazenada no arquivo apiKey.mjs) e a funcionalidade argv do módulo node:process para capturar os códigos das moedas a serem convertidas.

import apiKey from "./apiKey.mjs";

import { argv } from "node:process";

Feito isso, vamos desenvolver a função converterMoedas(), que será responsável por realizar a chamada à API Exchange Rate e exibir a taxa de câmbio no terminal.

Como a função envolve uma requisição a uma API externa, o que pode demorar devido à resposta do servidor, ela será assíncrona (usando async).

Dentro dela, utilizaremos o método fetch para fazer a requisição à API de taxas de câmbio da ExchangeRate. Esse método recebe o endereço da API, que pode ser obtido através da documentação oficial.

A URL deve conter a chave da API e os dois códigos de moedas que serão passados via terminal.

Vamos relembrar: o primeiro elemento do argv é o caminho para o Node.js e o segundo é o caminho do script que estamos executando.

Portanto, os dois códigos de moedas que serão passados via terminal estarão nos índices argv[2] e argv[3], correspondendo à moeda base e à moeda para a qual desejamos converter, respectivamente.

Por exemplo, para obter a taxa de conversão do dólar americano (USD) para o euro (EUR), o comando será: node ./conversor.mjs USD EUR

Além disso, ao usar o fetch, incluímos a palavra-chave await para que o código aguarde a resposta da API antes de continuar. Isso garante que os dados necessários sejam recebidos e processados corretamente.

import apiKey from "./apiKey.mjs";
import { argv } from "node:process";

async function converterMoedas() {
  const resposta = await fetch(
    `https://v6.exchangerate-api.com/v6/${apiKey}/pair/${argv[2]}/${argv[3]}`
  );

Após receber a resposta da API, vamos convertê-la para o formato JSON. Isso permitirá o acesso e a manipulação dos dados retornados.

import apiKey from "./apiKey.mjs";
import { argv } from "node:process";

async function converterMoedas() {
  const resposta = await fetch(
    `https://v6.exchangerate-api.com/v6/${apiKey}/pair/${argv[2]}/${argv[3]}`
  );
  const infoFinal = await resposta.json();

Com os dados no formato JSON, podemos acessar a taxa de conversão (infoFinal.conversion_rate).

Em seguida, formatamos o valor para mostrar apenas dois dígitos decimais, utilizando toFixed(2), e o exibimos no terminal usando console.log().

Com isso a função estará concluída e podemos adicionar uma chamada a ela no final do código.

import apiKey from "./apiKey.mjs";
import { argv } from "node:process";

async function converterMoedas() {
  const resposta = await fetch(
    `https://v6.exchangerate-api.com/v6/${apiKey}/pair/${argv[2]}/${argv[3]}`
  );
  const infoFinal = await resposta.json();
  console.log(infoFinal.conversion_rate.toFixed(2));
}

converterMoedas();

Executando o Conversor de Moedas

Para executar o script, basta rodar o seguinte comando no terminal, passando os códigos das moedas que você deseja converter, com a moeda base primeiro e a moeda para conversão em seguida.

node ./conversor.mjs EUR BRL

Executando esse comando, você verá a taxa de conversão atual do Euro (EUR) para o Real (BRL).

Executando o conversor de moedas com JavaScript

Você pode fazer a conversão de diferentes moedas, basta consultar a documentação da API e verificar os códigos de moedas suportados.

Conclusão – Conversor de Moedas com JavaScript

Na aula de hoje, você aprendeu como construir um conversor de moedas com JavaScript do zero!

Com poucas linhas de código, desenvolvemos juntos um script prático e funcional que interage com uma API de conversão de moedas, recebe o código de duas moedas e apresenta a cotação em tempo real!

Além disso, exploramos o uso do argv no Node.js para capturar os argumentos passados pelo terminal, uma funcionalidade extremamente útil, não apenas para este projeto, mas também para outras aplicações que você possa desenvolver no futuro.

Por fim, este projeto é uma excelente oportunidade para praticar e aplicar seus conhecimentos sobre APIs, manipulação de dados assíncronos e uso de variáveis dinâmicas.

Se você quer aprender ainda mais e se tornar um profissional que domina o JavaScript, confira nosso Curso Completo JavaScript Impressionador.

Hashtag Treinamentos

Para acessar publicações de JavaScript, clique aqui!


Quer aprender mais sobre JavaScript com um minicurso básico gratuito?

Posts mais recentes de JavaScript

Posts mais recentes da Hashtag Treinamentos

Diego Monutti

Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.