Este projeto consiste em uma aplicação desenvolvida em Go (Golang) composta por dois serviços: um servidor HTTP que consulta a cotação do dólar na API pública AwesomeAPI e armazena no banco SQLite, e um cliente que consome essa API local e salva a cotação em um arquivo .txt.
├── bkp # Backups e versões anteriores
├── client # Cliente que consome a API local e gera um arquivo com a cotação
├── db # Banco de dados SQLite
├── out # Saída dos arquivos gerados pelo cliente
├── server # Servidor HTTP que fornece a cotação
├── testes # Arquivos de teste e scripts auxiliares
- ✅ Servidor local exposto na porta
8080com o endpoint/cotacao. - ✅ Consulta a cotação do dólar (
USD-BRL) na AwesomeAPI. - ✅ Persiste o JSON completo retornado da API em um banco SQLite (
logs). - ✅ Cliente que consome o endpoint local
/cotacaoe gera um arquivocotacao.txtcontendo o valor do dólar.
- Go instalado (versão 1.18 ou superior)
- Acesso à internet (para consumo da API AwesomeAPI)
git clone https://github.com/seu-usuario/dollar_exchange.git
cd dollar_exchangego mod tidycd server
go run main.goO servidor estará rodando em http://localhost:8080/cotacao.
cd client
go run main.goout/cotacao.txtCom o seguinte conteúdo (exemplo): Dólar: 5.7559
Além disso, o banco SQLite (db/db.db) armazenará o JSON completo da cotação.
O banco de dados SQLite (db.db) possui uma tabela chamada logs:
CREATE TABLE logs (
idLog TEXT PRIMARY KEY,
cot TEXT
);Cada requisição ao endpoint /cotacao salva uma entrada no banco, armazenando o JSON retornado da AwesomeAPI.
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /cotacao | Retorna o valor atual do dólar no formato JSON: {"bid": "5.7559"} |
- O servidor implementa timeout para evitar requisições travadas tanto no acesso à API externa quanto na gravação no banco.
- O cliente também possui timeout configurado.
- A persistência no banco de dados é simples e baseada no JSON bruto retornado da API.
- Projeto didático, ideal para aprendizado de Go, HTTP, SQLite e integração com APIs.