Building a Currency Converter in Java
Currencyapi.com provides currency data with update rates ranging from daily to minutely update frequencies. Hence, it is the perfect data provider for your java currency converter.
Developer experience is important to us. Therefore, you may access our API using java SDK, or alternatively via simple GET
requests using a HTTP client. Furthermore, we provide a postman collection to make the implementation even easier for you.
In this tutorial, we will focus on accessing the API directly using GET
requests.
The use of our API requires an API key. Register your free API key here.
Simple Java Currency Converter Example:
Using the java SDK is really the most efficient method to build a java currency converter, it requires the least amount of code lines. Exchange Rate Data can easily be obtained by running the following script:
Request
String route = "https://api.currencyapi.com/v3/latest?apikey=YOUR-API-KEY";
URL url = new URL(route);
HttpURLConnection request = (HttpURLConnection) url.openConnection();
request.connect();
JsonParser jp = new JsonParser();
JsonElement root = jp.parse(new InputStreamReader((InputStream) request.getContent()));
JsonObject jsonobj = root.getAsJsonObject();
String req_result = jsonobj.get("result").getAsString();
Since USD
is set as a default base currency, all exchange rates are relative to USD
. If you would like to change this, simply add the desired base_currency
parameter to your request:
Changing the base currency
...
url = "https://api.currencyapi.com/v3/latest?apikey=YOUR-API-KEY&base_currency=EUR"
...
Also, it is possible to limit the amount of currencies that are returned by introducing the currencies
parameter to your request.
Limiting the amount of currencies returned
...
url = "https://api.currencyapi.com/v3/latest?apikey=YOUR-API-KEY&base_currency=EUR¤cies=USD,AED,CHF"
...
This will of course not have an impact on the data retrieved, but it will the response easier to handle and easier to read.
JSON response
{
"meta":{
"last_updated_at":"2023-08-02T23:59:59Z"
},
"data":{
"ADA":{
"code":"ADA",
"value":3.3342788788
},
"AOA":{
"code":"AOA",
"value":823.0601503138
},
"ARB":{
"code":"ARB",
"value":0.8813003623
},
"ARS":{
"code":"ARS",
"value":277.3166432108
}
}
}
The values in the JSON response are exchange rates. Since we intend to build a currency converter, we still have to multiply the exchange rate with the amount that we would like to convert, to end up with the desired result.
Converter Endpoint
If you do not wish to take this small extra step, currencyapi.com provides an extra /convert
endpoint that was specifically designed for this task.
However, it is only available for plans >= medium.