Exchange rates client for the excellent Exchange rates API. The API provides current and historical foreign exchange rates published by financial data providers and banks, including the European Central Bank.
Full documentation can be found at: https://pkg.go.dev/github.com/adrg/exrates.
go get github.com/adrg/exrates
// Get all available exchange rates.
rates, err := exrates.Latest("USD", nil)
if err != nil {
// Treat error.
}
// Get specific exchange rates.
// rates, err := exrates.Latest("EUR", []string{"USD", "CAD"})
fmt.Printf("Exchange rates for %s on %s\n", rates.Base, rates.Date)
for currency, value := range rates.Values {
fmt.Printf("%s: %f\n", currency, value)
}
date := time.Date(2019, 3, 8, 0, 0, 0, 0, time.UTC)
// Get all available exchange rates.
rates, err := exrates.On("USD", date, nil)
if err != nil {
// Treat error.
}
// Get specific exchange rates.
// rates, err := exrates.On("EUR", date, []string{"USD", "CAD"})
fmt.Printf("Exchange rates for %s on %s\n", rates.Base, rates.Date)
for currency, value := range rates.Values {
fmt.Printf("%s: %f\n", currency, value)
}
start := time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC)
end := time.Date(2019, 4, 22, 0, 0, 0, 0, time.UTC)
// Get all available exchange rates.
days, err := exrates.Between("USD", start, end, nil)
if err != nil {
// Treat error.
}
// Get specific exchange rates.
// days, err := exrates.Between("EUR", start, end, []string{"USD", "CAD"})
for _, day := range days {
fmt.Printf("Exchange rates for %s on %s\n", day.Base, day.Date)
for currency, value := range day.Values {
fmt.Printf("%s: %f\n", currency, value)
}
}
A list of supported currencies can be found here.
Contributions in the form of pull requests, issues or just general feedback,
are always welcome.
Before making a contribution please read CONTRIBUTING.md.
For more information see the Exchange rates API.
Copyright (c) 2019 Adrian-George Bostan.
This project is licensed under the MIT license.
See LICENSE for more details.