Cotação de moedas Componentes
Mostra a cotação do dólar, euro, bitcoin e outras moedas em reais, buscada na hora numa API pública gratuita — em cartões ou em tabela, atualizando sozinha se você quiser.
O que é
Serve para o site de uma casa de câmbio, agência de turismo, loja que importa, portal de notícias: "Dólar hoje R$ 5,43 ▲ 0,32%". Você escreve uma <div sw-cotacao>, diz quais pares quer (sw-cotacao-pares="USD-BRL,EUR-BRL") e ele monta os cartões com o valor e a variação do dia (verde subindo, vermelho caindo).
Precisa do JavaScript do SWCore e de internet: o navegador de quem visita busca os valores na AwesomeAPI (economia.awesomeapi.com.br), um serviço público e gratuito que não pede cadastro nem chave. Você não precisa de nada no seu servidor. Sem internet, ou se a API estiver fora, aparece "Cotação indisponível no momento." no lugar (o mesmo vale para par escrito errado). O símbolo segue a moeda de destino do par: USD-BRL mostra "R$", BTC-USD mostra "US$", USD-EUR mostra "€".
Quando usar
- Mostrar o câmbio do dia num site de turismo, câmbio ou importação: modo cartões.
- Comparar compra, venda, máxima e mínima de várias moedas:
sw-cotacao-mode="table". - Não use para calcular preço de venda ou fechar negócio: é informativo, com atraso de mercado.
Comece aqui
-
1
Coloque o SWCore na página.
<link rel="stylesheet" href="https://swcore.sanweb.com.br/dist/2.1.0/swcore.min.css"> <!-- fim do body --> <script src="https://swcore.sanweb.com.br/dist/2.1.0/swcore.min.js"></script> -
2
Escreva a div com os pares que quer mostrar. Pronto: ao abrir a página, o navegador busca os valores.
<div sw-cotacao sw-cotacao-pares="USD-BRL,EUR-BRL"></div> -
3
Para atualizar sozinho, diga de quanto em quanto tempo (em milissegundos: 60000 = 1 minuto).
<div sw-cotacao sw-cotacao-pares="USD-BRL,EUR-BRL" sw-cotacao-auto="60000"></div>
Todas as variações
Cada quadro abaixo é o componente de verdade, rodando. O código embaixo é exatamente o que está no quadro: copie e cole.
1. Cartões (o padrão)
Estes quadros são retratos: mostram o HTML que o componente monta, com valores de exemplo, para esta página não depender da internet. O código embaixo de cada um é o que você escreve para ter o de verdade, com valores reais. Cada cartão traz o par, se é preço de compra ou de venda, o valor em reais e a variação do dia.
<div sw-cotacao></div>
<div sw-cotacao sw-cotacao-pares="USD-BRL,EUR-BRL,GBP-BRL"></div>
2. Compra ou venda
Nos cartões, sw-cotacao-tipo="c" (padrão) mostra o preço de compra; qualquer outro valor, como "v", mostra o de venda. O próprio cartão escreve qual é. (Retratos com valores de exemplo.)
<div sw-cotacao sw-cotacao-pares="USD-BRL" sw-cotacao-tipo="c"></div>
<div sw-cotacao sw-cotacao-pares="USD-BRL" sw-cotacao-tipo="v"></div>
3. Tabela
sw-cotacao-mode="table" mostra, para cada par, compra, venda, variação do dia, máxima e mínima das últimas 24 horas. (Retrato com valores de exemplo.)
| Par | Compra (Bid) | Venda (Ask) | Variação | Máx 24h | Mín 24h |
|---|---|---|---|---|---|
| USD/BRL | R$ 5.43 | R$ 5.44 | ▲ 0.32% | R$ 5.46 | R$ 5.40 |
| EUR/BRL | R$ 5.87 | R$ 5.88 | ▼ 0.18% | R$ 5.91 | R$ 5.85 |
| BTC/BRL | R$ 342150.00 | R$ 342300.00 | ▲ 1.24% | R$ 345000.00 | R$ 338900.00 |
<div sw-cotacao sw-cotacao-pares="USD-BRL,EUR-BRL,BTC-BRL" sw-cotacao-mode="table"></div>
Tabela de opções
| Palavra | O que faz | Exemplo |
|---|---|---|
| Atributos | ||
sw-cotacao | Liga o componente. Apelido curto: sw-cota. | <div sw-cotacao></div> |
sw-cotacao-pares | Pares separados por vírgula, no formato MOEDA-BRL. Padrão: USD-BRL,EUR-BRL. | sw-cotacao-pares="USD-BRL,BTC-BRL" |
sw-cotacao-mode | cards (padrão) ou table. | sw-cotacao-mode="table" |
sw-cotacao-tipo | Só nos cartões: c = compra (padrão); outro valor = venda. | sw-cotacao-tipo="v" |
sw-cotacao-auto | Busca de novo a cada N milissegundos. Sem ele, busca uma vez ao abrir a página. | sw-cotacao-auto="60000" |
| Apelidos curtos (funcionam igual) | ||
sw-cota-pares / sw-cota-mode / sw-cota-tipo / sw-cota-auto | Mesmo efeito dos nomes longos. | <div sw-cota sw-cota-pares="USD-BRL"></div> |
| Pares mais usados (código da AwesomeAPI) | ||
USD-BRL | Dólar americano. | |
EUR-BRL | Euro. | |
GBP-BRL | Libra esterlina. | |
ARS-BRL | Peso argentino. | |
BTC-BRL | Bitcoin. | |
ETH-BRL | Ethereum. | |
| Visual (classes que o componente cria — mude no CSS da sua página se quiser) | ||
.sw-cotacao-it | Cada cartão. | |
.sw-cotacao-val / .sw-cotacao-sub | Valor e variação; ganham .is-up (verde) ou .is-dwn (vermelho). | |
.sw-cotacao-table | A tabela do modo table. | |
Receitas prontas — usos reais
Situações que aparecem em quase todo site. Copie a que servir.
<section class="p-3">
<h2 class="t-h5">Câmbio de hoje</h2>
<div sw-cotacao sw-cotacao-pares="USD-BRL,EUR-BRL,ARS-BRL" sw-cotacao-tipo="v" sw-cotacao-auto="300000"></div>
<p class="t-pp t-mut">Valores de venda, atualizados a cada 5 minutos. Fonte: AwesomeAPI.</p>
</section>
<div sw-cotacao
sw-cotacao-pares="BTC-BRL,ETH-BRL"
sw-cotacao-mode="table"
sw-cotacao-auto="60000"></div>
API (JavaScript)
SW.Cotacao.initAll(raiz)[sw-cotacao] dentro de raiz. Normalmente não precisa: o SWCore liga sozinho. SWCotacao é o mesmo objeto.Precisa de quê
swcore.min.csseswcore.min.js.- Internet no navegador de quem visita — os valores vêm da AwesomeAPI (gratuita, sem chave). Nada é preciso no seu servidor.
Cuidados — erros comuns
- Par escrito errado (
USD/BRL,dolar-real): a API não reconhece e aparece "Cotação indisponível no momento.". Use o formatoUSD-BRL, com hífen e em maiúsculas. sw-cotacao-automuito baixo (ex.: 1000): a API gratuita limita pedidos e passa a recusar (aparece "Cotação indisponível no momento."). Use 60000 (1 minuto) ou mais.- Muitos blocos
[sw-cotacao]na mesma página: cada um faz o seu pedido. Junte os pares num bloco só. - Testar abrindo o arquivo sem internet: aparece "Cotação indisponível no momento." — não é defeito do seu código.
O que ele não faz
- Depende de um serviço externo (AwesomeAPI). Se ele sair do ar ou mudar, a cotação some.
- Valor com ponto decimal (
5.43), no formato americano — não usa vírgula. - A seta e a cor mostram a variação do dia (desde a abertura), não desde a última atualização da página.
- Não tem eventos nem função para ler os valores por código.

