Sample Program to Invoke GET REST API
The following example sends an HTTP GET request to the
/workspace/{workspaceId}
endpoint to retrieve information about a workspace with a given workspace ID.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class SampleProgram { private static String userName = "<username>"; private static String password = "<password>"; private static String hostName = "<hostName>"; private static String workspaceId = "<workspaceId>"; private static String version = "3"; private static String tokenGenerationUrl = "https://" + hostName + "/primediscovery/apitoken/request?scope=" + "http://" + hostName + "/api"; private static String getWorkspaceUrl = "https://" + hostName + "/api/restapi/workspace/" + workspaceId; public static void main(String s[]) throws Exception { String workspaceJson = callRestURL(); System.out.println("Workspace:- " + workspaceJson); } private static JsonNode getAuthTokenDetails() { HttpURLConnection conn = null; try { // Generating the OAuth Token URL tokenUrl = new URL(tokenGenerationUrl); conn = (HttpURLConnection) tokenUrl.openConnection(); conn.setDoOutput(true); conn.setDoInput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Accept", "application/json"); conn.setRequestProperty("Content-Type", "application/json"); String userCredentials = userName + ":" + password; String base64Credentials = javax.xml.bind.DatatypeConverter.printBase64Binary(userCredentials.getBytes()); String basicAuth = "Basic " + base64Credentials; conn.setRequestProperty("Authorization", basicAuth); if (conn.getResponseCode() != 200) { throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode() + "Error: " + readStreamData(conn.getErrorStream())); } JsonNode authTokenJson = new ObjectMapper().readValue(conn.getInputStream(), JsonNode.class); conn.disconnect(); return authTokenJson; } catch (Exception e) { conn.disconnect(); throw new RuntimeException("Failed to generate OAuth Token"); } } private static String callRestURL() throws Exception { HttpURLConnection conn = null; try { trustAllCert(); JsonNode authTokenResponse = getAuthTokenDetails(); conn = null; URL apiUrl = new URL(getWorkspaceUrl); conn = (HttpURLConnection) apiUrl.openConnection(); conn.setRequestProperty("Version", version); System.out.println("Token Generated : " + authTokenResponse.get("accessToken").asText()); conn.setRequestProperty("Authorization", "Bearer " + authTokenResponse.get("accessToken").asText()); conn.setRequestProperty("x-prime-tenant-code", authTokenResponse.get("primeTenantCode").asText()); conn.setDoOutput(true); conn.setDoInput(true); conn.setRequestMethod("GET"); if (conn.getResponseCode() != 200) { throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode() + "Error: " + readStreamData(conn.getErrorStream())); } return readStreamData(conn.getInputStream()); } finally { if (conn != null) { conn.disconnect(); } } } private static String readStreamData(InputStream is) throws IOException { try (BufferedReader br = new BufferedReader(new InputStreamReader(is))) { String output; StringBuilder buff = new StringBuilder(); while ((output = br.readLine()) != null) { buff.append(output); } return buff.toString(); } } private static void trustAllCert() throws NoSuchAlgorithmException, KeyManagementException { // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { @Override public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] certs, String authType) { } @Override public void checkServerTrusted(X509Certificate[] certs, String authType) { } } }; // Install the all-trusting trust manager SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); // Create all-trusting host name verifier HostnameVerifier allHostsValid = new HostnameVerifier() { @Override public boolean verify(String hostname, SSLSession session) { return true; } }; // Install the all-trusting host verifier HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); } }