1. import java.util.HashMap;
  2. import java.util.Map;
  3. import java.util.Set;
  4. import java.util.HashSet;
  5. public class ApiEndpointDiff {
  6. public static void main(String[] args) {
  7. // Example datasets - replace with your actual data
  8. Map<String, Map<String, String>> sandboxEndpoints1 = new HashMap<>();
  9. sandboxEndpoints1.put("users", new HashMap<>());
  10. sandboxEndpoints1.get("users").put("get", "GET /users");
  11. sandboxEndpoints1.get("users").put("create", "POST /users");
  12. sandboxEndpoints1.get("users").put("update", "PUT /users/{id}");
  13. sandboxEndpoints1.get("users").put("delete", "DELETE /users/{id}");
  14. sandboxEndpoints1.get("products").put("get", "GET /products");
  15. sandboxEndpoints1.get("products").put("create", "POST /products");
  16. Map<String, Map<String, String>> sandboxEndpoints2 = new HashMap<>();
  17. sandboxEndpoints2.put("users", new HashMap<>());
  18. sandboxEndpoints2.get("users").put("get", "GET /users");
  19. sandboxEndpoints2.get("users").put("create", "POST /users");
  20. sandboxEndpoints2.get("users").put("update", "PUT /users/{id}");
  21. sandboxEndpoints2.get("users").put("delete", "DELETE /users/{id}");
  22. sandboxEndpoints2.get("products").put("get", "GET /products");
  23. sandboxEndpoints2.get("products").put("create", "POST /products");
  24. sandboxEndpoints2.get("products").put("list", "GET /products?page={page}&size={size}"); //New Endpoint
  25. // Compare the datasets
  26. compareEndpoints(sandboxEndpoints1, sandboxEndpoints2);
  27. }
  28. public static void compareEndpoints(Map<String, Map<String, String>> endpoints1, Map<String, Map<String, String>> endpoints2) {
  29. // Find all unique endpoint names
  30. Set<String> allEndpoints = new HashSet<>();
  31. for (Map.Entry<String, Map<String, String>> entry : endpoints1.entrySet()) {
  32. allEndpoints.add(entry.getKey());
  33. for (String method : entry.getValue().keySet()) {
  34. allEndpoints.add(entry.getKey() + "-" + method);
  35. }
  36. }
  37. for (Map.Entry<String, Map<String, String>> entry : endpoints2.entrySet()) {
  38. allEndpoints.add(entry.getKey());
  39. for (String method : entry.getValue().keySet()) {
  40. allEndpoints.add(entry.getKey() + "-" + method);
  41. }
  42. }
  43. // Compare each endpoint
  44. for (String endpointName : allEndpoints) {
  45. String[] parts = endpointName.split("-");
  46. String resource = parts[0];
  47. String method = parts[1];
  48. String endpoint1 = getEndpointDetails(endpoints1, resource, method);
  49. String endpoint2 = getEndpointDetails(endpoints2, resource, method);
  50. if (!endpoint1.equals(endpoint2)) {
  51. System.out.println("Difference found for " + resource + "-" + method + ":");
  52. System.out.println(" Sandbox 1: " + endpoint1);
  53. System.out.println(" Sandbox 2: " + endpoint2);
  54. }
  55. }
  56. }
  57. // Helper function to retrieve endpoint details
  58. private static String getEndpointDetails(Map<String, Map<String, String>> endpoints, String resource, String method) {
  59. if (endpoints.containsKey(resource) && endpoints.get(resource).containsKey(method)) {
  60. return endpoints.get(resource).get(method);
  61. }
  62. return null; // Or handle the case where the endpoint is missing
  63. }
  64. }

Add your comment