Currency API es una API REST desarrollada en Go (Golang) que permite obtener tasas de cambio entre diferentes monedas y realizar conversiones monetarias en tiempo real. Está diseñada para integrarse fácilmente en sistemas financieros, aplicaciones de ecommerce, pasarelas de pago, dashboards de análisis financiero y cualquier entorno que requiera manejo de divisas. La arquitectura modular y el enfoque en el rendimiento la hacen ideal para despliegues en producción.
Obtén tasas de cambio en tiempo real a partir de un proveedor externo de datos financieros, usando una moneda base configurable.
Convierte montos de una divisa a otra al instante, útil para cálculos de pagos, precios internacionales, o conversiones contables.
Aprovecha la eficiencia, concurrencia y bajo consumo de recursos del lenguaje Go para ofrecer una API rápida y estable.
Organizado por capas: rutas, controladores, servicios y utilidades. Esto mejora la mantenibilidad y facilita pruebas e integraciones futuras.
Utiliza variables de entorno para definir claves API, puerto de ejecución, y endpoints de terceros sin exponer información sensible.
currency-api/
├── cmd/
│ └── server/
│ └── main.go # Punto de entrada del servidor
├── internal/
│ ├── handlers/ # Lógica de manejo de endpoints
│ ├── services/ # Lógica de negocio y consumo de APIs externas
│ └── utils/ # Funciones auxiliares
├── .env # Variables de entorno
├── go.mod # Módulo de dependencias de Go
└── README.md
🧪 Instalación y Uso:
- Paso 1: Clonación del repositorio.
- Paso 2: Instalación de dependencias utilizando
go mod tidy. - Paso 3: Configuración de variables de entorno para definir claves API, puertos y URL.
- Paso 4: Iniciar el servidor con
go run.
📬 Endpoints:
- GET /api/rates: Para obtener las tasas de cambio con respecto a una moneda base.
- GET /api/convert: Para realizar la conversión entre dos monedas.
🔭 Roadmap Futuro:
- El roadmap incluye nuevas funcionalidades como soporte para múltiples proveedores de datos, cache de tasas, y soporte de WebSockets para notificaciones en tiempo real.
🛠 Tecnologías Usadas:
- Go (Golang): Se menciona como el lenguaje principal utilizado en el proyecto.
- Gorilla Mux: Se usa como el enrutador HTTP para gestionar las rutas en la API.
- Dotenv: Utilizado para cargar variables de entorno de manera segura.
- HTTP Client: Se emplea para realizar solicitudes a APIs externas para obtener tasas de cambio.
- JSON: El formato de intercambio de datos entre la API y los clientes.
- Git: Herramienta de control de versiones utilizada en el proyecto.
- Docker: Para crear contenedores y facilitar el despliegue de la API en cualquier entorno.
🤝 Contribuciones:
- !Las contribuciones son bienvenidas! Abre issues o envía pull requests.