1. import java.io.IOException;
  2. import java.net.URL;
  3. import java.net.URLConnection;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. public class ApiCompactMonitor {
  7. public static void main(String[] args) {
  8. String apiUrl = "https://api.example.com/data"; // Replace with your API URL
  9. try {
  10. String response = fetchApiData(apiUrl);
  11. processAndOutputData(response);
  12. } catch (IOException e) {
  13. System.err.println("Error fetching data: " + e.getMessage());
  14. }
  15. }
  16. public static String fetchApiData(String apiUrl) throws IOException {
  17. URL url = new URL(apiUrl);
  18. URLConnection connection = url.openConnection();
  19. connection.setConnectTimeout(5000); // Set a timeout
  20. connection.setReadTimeout(10000); // Set a timeout
  21. return connection.getInputStream().readString();
  22. }
  23. public static void processAndOutputData(String response) {
  24. // Simulate parsing and compacting the API response
  25. Map<String, Object> parsedData = parseApiResponse(response);
  26. //Compact the data for monitoring
  27. String compactString = compactData(parsedData);
  28. System.out.println(compactString);
  29. }
  30. private static Map<String, Object> parseApiResponse(String response) {
  31. // Placeholder for API parsing logic. Replace with your actual parsing.
  32. // This is a dummy example. Assume JSON format.
  33. // In a real application, use a JSON library (Jackson, Gson, etc.)
  34. Map<String, Object> data = new HashMap<>();
  35. data.put("timestamp", System.currentTimeMillis());
  36. data.put("status", "OK");
  37. data.put("response_time_ms", 50); // Example response time
  38. return data;
  39. }
  40. private static String compactData(Map<String, Object> data) {
  41. //Concise formatting for monitoring.
  42. StringBuilder sb = new StringBuilder();
  43. sb.append("Timestamp: ").append(data.get("timestamp")).append(", ");
  44. sb.append("Status: ").append(data.get("status")).append(", ");
  45. sb.append("Response Time (ms): ").append(data.get("response_time_ms"));
  46. return sb.toString();
  47. }
  48. }

Add your comment