Este é um projeto de API de conversão de moedas que permite aos usuários converter valores entre diferentes moedas e obter as taxas de câmbio mais recentes. A API é construída em Go e possui um frontend simples para interação.
- Conversão de Moedas: Converta qualquer valor de uma moeda para outra.
- Taxas de Câmbio: Obtenha as taxas de câmbio mais recentes para uma moeda base.
- Cache: Armazena em cache os resultados das solicitações para um desempenho mais rápido e para evitar o uso excessivo da API externa.
- 🤖 Assistente IA (CurrencyBot): Chatbot inteligente que responde dúvidas sobre cotações, conversões e moedas usando cotações em tempo real como contexto.
- Multi-Provedor de IA: Suporte a OpenAI, Google Gemini e OpenRouter (modelos gratuitos) — troque com uma linha no
.env. - Frontend Simples: Uma interface de usuário simples para interagir com a API.
- Deploy Fácil: O projeto está configurado para ser facilmente implantado usando Docker e Fly.io.
- Backend: Go (padrão
net/http, zero dependências externas) - Frontend: HTML, CSS, JavaScript
- IA: OpenAI SDK (compatível com OpenAI, Gemini e OpenRouter)
- API Externa: ExchangeRate-API
- Containerização: Docker
- Hospedagem: Fly.io
- Go (versão 1.23 ou superior)
- Docker (opcional, para execução em contêiner)
- Uma chave de API da ExchangeRate-API
- Uma chave de API de IA (OpenAI, Gemini ou OpenRouter)
-
Clone o repositório:
git clone https://github.com/alvarossantos/api-moedas.git cd api-moedas -
Crie um arquivo
.envna raiz do projeto com suas chaves de API:API_KEY_EXCHANGE=sua-chave-exchange-rate # ── IA (configure um provedor) ── AI_PROVIDER=openrouter # openai | gemini | openrouter OPENROUTER_API_KEY=sua-chave # https://openrouter.ai/keys
Modelos disponíveis: Veja a tabela completa no
.env.exampledo repositório.
Para executar o projeto localmente, use o seguinte comando:
go run main.goO servidor estará disponível em http://localhost:8080.
Para executar o projeto com Docker, construa a imagem e execute o contêiner:
docker build -t api-moedas .
docker run -p 8080:8080 -v ./.env:/app/.env api-moedasConverte um valor de uma moeda para outra.
Parâmetros:
from: A moeda de origem (ex:USD).to: A moeda de destino (ex:BRL).amount: O valor a ser convertido.
Exemplo:
GET /convert?from=USD&to=BRL&amount=10
Obtém as taxas de câmbio para uma moeda base.
Parâmetros:
base: A moeda base (ex:USD).
Exemplo:
GET /rates?base=USD
Chatbot IA que responde dúvidas sobre moedas e cotações. Utiliza cotações em tempo real como contexto.
Método: POST
Body (JSON):
{
"message": "Quanto está o dólar em reais?",
"history": []
}Parâmetros:
message: A pergunta do usuário (obrigatório).history: Array de mensagens anteriores para manter contexto (opcional, máx. 10).
Exemplo de resposta:
{
"reply": "O dólar (USD) está cotado a 5,0938 reais (BRL) neste momento."
}Retorna o provedor de IA configurado e se está pronto para uso.
Exemplo de resposta:
{
"provider": "OpenRouter",
"model": "inclusionai/ling-3.0-flash:free",
"ready": true
}Contribuições são bem-vindas! Sinta-se à vontade para abrir uma issue ou enviar um pull request.
Este projeto está licenciado sob a Licença MIT.