|

|  How to Fetch Stock Quotes Using Polygon.io API in Java

How to Fetch Stock Quotes Using Polygon.io API in Java

October 31, 2024

Discover how to seamlessly fetch stock quotes with Polygon.io API in Java. Follow our step-by-step guide to integrate stock data into your applications.

How to Fetch Stock Quotes Using Polygon.io API in Java

 

Set Up Your Java Environment

 

  • Ensure that you have a working Java development environment. If you don't have Maven installed, consider installing it as it will help in managing dependencies efficiently.
  •  

  • Decide if you're going to work with a specific IDE like IntelliJ IDEA, Eclipse, or use a simple text editor with command line compilation.

 

Add Required Dependencies

 

  • Use Maven to manage dependencies. Add the following dependencies to your `pom.xml` for HTTP requests and JSON parsing.

 

<dependencies>
    <!-- Add HTTP client dependecy -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.13</version>
    </dependency>
    
    <!-- Add JSON parser dependency -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.11.3</version>
    </dependency>
</dependencies>

 

  • Once you add these, make sure to update Maven to fetch the appropriate libraries.

 

Build the HTTP Request

 

  • Create a method to build and send HTTP requests to the Polygon.io API endpoint for stock quotes. Make sure you replace "YOUR_API_KEY" with your actual API key received from Polygon.io.

 

import org.apache.http.HttpEntity;
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;
import java.io.IOException;

public class PolygonApiFetcher {
    private static final String API_KEY = "YOUR_API_KEY";
    private static final String BASE_URL = "https://api.polygon.io/v1/last/stocks/";

    public String getStockQuote(String stockTicker) throws IOException {
        String url = BASE_URL + stockTicker + "?apiKey=" + API_KEY;
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpGet request = new HttpGet(url);

        try (CloseableHttpResponse response = httpClient.execute(request)) {
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                return EntityUtils.toString(entity);
            }
        }
        return null;
    }
}

 

  • This method creates an HTTP client, builds a GET request, and retrieves the quote data as a string.

 

Parse the JSON Response

 

  • Once you receive the response as a string, parse it using Jackson or any other JSON library. Below is how you can parse it using Jackson's `ObjectMapper`.

 

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;

public class JsonParser {
    private static final ObjectMapper objectMapper = new ObjectMapper();

    public static void parseStockQuote(String jsonResponse) throws IOException {
        JsonNode rootNode = objectMapper.readTree(jsonResponse);
        JsonNode lastNode = rootNode.path("last");
        double price = lastNode.path("price").asDouble();
        System.out.println("Stock Price: " + price);
    }
}

 

  • This code snippet reads the JSON response and prints out the stock price from the 'last' field.

 

Integrate and Test the Components

 

  • Create a main method to fetch and parse the stock quote data. Ensure error handling for network issues, invalid API key, or JSON parsing errors.

 

public class Main {
    public static void main(String[] args) {
        PolygonApiFetcher apiFetcher = new PolygonApiFetcher();
        try {
            String response = apiFetcher.getStockQuote("AAPL");
            if (response != null) {
                JsonParser.parseStockQuote(response);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

  • Run the program, specifying the stock ticker you're interested in, such as "AAPL" for Apple.

 

Concluding Remarks

 

  • While the above code sets a foundation, remember that real-world applications require robust error handling.
  •  

  • Consider caching responses if your application frequently requests the same data.
  •  

  • Implement rate limiting if you expect high-volume requests to avoid rejecting by the API server.