Forex Crypto and CFD REST JSON with Java

Forex Crypto and CFD REST JSON with Java

In the current web-enabled, data-driven era, data accessibility is essential for quicker and better applications. REST services are used by many data sources. Through these services, customers can obtain data in an industry-standard manner. Additionally, these services shorten the product development cycle and help businesses get their products to market more quickly. We will use the HTTP Components Library from the Apache Software Foundation for this example.

Call REST Data Utilising HTTPClient

The Apache HTTPClient Library makes it simple to manage HTTP requests. In the IntelliJ software development environment, we'll use a Maven project. Open IntelliJ and create a new HTTP REST-Client Maven project in the src//java directory as a starting point. Additionally, we'll create a brand-new Java file called RESTClient.java and add our code.

Installing Libraries

Adding and importing code into pom.xml is simplified by including the libraries in our Maven project. Finding the pom.xml file on the project route is the first step in opening it. The following code must be inserted between the JSON tags dependencies> and /dependencies> for the libraries to auto-import.

<dependency>

<groupId>org.apache.httpcomponents</groupId>

<artifactId>httpclient</artifactId>

<version>4.5.10</version>

</dependency>

Let us write some code.

We will first add the libraries required to send requests.

import org.apache.http.HttpEntity;

import org.apache.http.HttpHeaders;

import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.util.EntityUtils;

importjava.io.IOException;

After this, we will create the skeleton of our program.

public class RESTClient{

public static void main(String[] args) throws IOException{

//Request code inserted here

}

}

The required currency and our API key will be coded into the request string in the following step. You require an API key to request Forex, CFD, and cryptocurrency data from the TraderMade REST Service. Download it and register for free to get the API key. On our documentation page, you may also find a pre-populated code sample. For the sake of simplicity, this tutorial utilises the Live Endpoint. TraderMade, however, provides a variety of ends. Please visit our RESTful API documentation page for more information about the endpoints we provide.

HttpGet request = new HttpGet("https://marketdata.tradermade.com/api/v1/live?currency=EURUSD&api_key=API_KEY");

At this stage, we can send a request and receive the output.

CloseableHttpResponse response = httpClient.execute(request);

try {

HttpEntity entity = response.getEntity();

if (entity != null) {

// return it as a String

String result = EntityUtils.toString(entity);

System.out.println(result);

}

} finally {

response.close();

}

You can run the program to see the current live rates for the specified currency pair looking something like this:

{

"endpoint": "live",

"quotes": [

{

"ask": 1.33313,

"base_currency": "GBP",

"bid": 1.33311,

"mid": 1.33312,

"quote_currency": "USD"

}

],

"requested_time": "Wed, 02 Mar 2022 12:00:14 GMT",

"timestamp": 1646222414

}

We can write some code to parse the JSON after receiving the data. A new entry must be added to the pom.xml file to import JSON libraries, as seen here:

<dependency>

<groupId>org.json</groupId>

<artifactId>json</artifactId>

<version>20211205</version>

</dependency>

Then, we need to import the classes in the .java file.

import org.json.JSONArray;

import org.json.JSONObject;

We will now pass the result data into a new JSONObject to generate a JSONObject from it (). We can use the getJSONArray function to retrieve the quote objects from the JSONObject as it is being loaded. Later, we can examine the data again, format it how we want, and receive the results.

JSONObject obj = new JSONObject(result);

JSONArray quotes = obj.getJSONArray("quotes");

System.out.println(quotes.toString());

for (int i = 0; i < quotes.length(); i++) {

JSONObject quote = quotes.getJSONObject(i);

System.out.println(" Quote " + quote.getString("base_currency") + " " + quote.getString("quote_currency") + " " + quote.getFloat("bid") + " " + quote.getFloat("ask"));

}

We obtain an outcome similar to the following:

Quote EURUSD 1.11069 1.11069

Quote GBPUSD 1.33504 1.33506

For market data on Forex, CFDs, and cryptocurrencies, TraderMade provides several endpoints through REST and WebSocket. For further information, kindly visit https://tradermade.com/.

import org.apache.http.HttpEntity;

import org.apache.http.HttpHeaders;

import org.apache.http.client.methods.CloseableHttpResponse;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.util.EntityUtils;

importjava.io.IOException;

import org.json.JSONArray;

import org.json.JSONObject;

public class RESTClient {

public static void main(String[] args) throws IOException {

CloseableHttpClient httpClient = HttpClients.createDefault();

try {

HttpGet request = new HttpGet("https://marketdata.tradermade.com/api/v1/live?currency=EURUSD,GBPUSD&api_key=YOUR_API_KEY");

CloseableHttpResponse response = httpClient.execute(request);

try {

HttpEntity entity = response.getEntity();

if (entity != null) {

// return it as a String

String result = EntityUtils.toString(entity);

System.out.println(result);

JSONObject obj = new JSONObject(result);

JSONArray quotes = obj.getJSONArray("quotes");

System.out.println(quotes.toString());

for (int i = 0; i < quotes.length(); i++) {

JSONObject quote = quotes.getJSONObject(i);

System.out.println(" Quote " + quote.getString("base_currency") + quote.getString("quote_currency") + " " + quote.getFloat("bid") + " " + quote.getFloat("ask"));

}

}

} finally {

response.close();

}

} finally {

httpClient.close();

}

}

}

Also, refer to the originally published tutorial on the TraderMade website for Fetching Forex Data via REST API with Java.

Also, take a glance at a few other Java-based technical tutorials to enhance your coding and data retrieval skills:

Real-Time Forex WebSocket with Java

Using Currency Conversion API with Java and Other Programming Languages

First JavaScript REST Client