import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
public class ApiCompactMonitor {
public static void main(String[] args) {
String apiUrl = "https://api.example.com/data"; // Replace with your API URL
try {
String response = fetchApiData(apiUrl);
processAndOutputData(response);
} catch (IOException e) {
System.err.println("Error fetching data: " + e.getMessage());
}
}
public static String fetchApiData(String apiUrl) throws IOException {
URL url = new URL(apiUrl);
URLConnection connection = url.openConnection();
connection.setConnectTimeout(5000); // Set a timeout
connection.setReadTimeout(10000); // Set a timeout
return connection.getInputStream().readString();
}
public static void processAndOutputData(String response) {
// Simulate parsing and compacting the API response
Map<String, Object> parsedData = parseApiResponse(response);
//Compact the data for monitoring
String compactString = compactData(parsedData);
System.out.println(compactString);
}
private static Map<String, Object> parseApiResponse(String response) {
// Placeholder for API parsing logic. Replace with your actual parsing.
// This is a dummy example. Assume JSON format.
// In a real application, use a JSON library (Jackson, Gson, etc.)
Map<String, Object> data = new HashMap<>();
data.put("timestamp", System.currentTimeMillis());
data.put("status", "OK");
data.put("response_time_ms", 50); // Example response time
return data;
}
private static String compactData(Map<String, Object> data) {
//Concise formatting for monitoring.
StringBuilder sb = new StringBuilder();
sb.append("Timestamp: ").append(data.get("timestamp")).append(", ");
sb.append("Status: ").append(data.get("status")).append(", ");
sb.append("Response Time (ms): ").append(data.get("response_time_ms"));
return sb.toString();
}
}
Add your comment