import java.util.HashMap;
import java.util.Map;
public class ApiPayloadCompressor {
/**
* Compresses API payload output with optional flags.
*
* @param payload The API payload string.
* @param compress Whether to compress the payload.
* @param verbose Whether to include verbose output.
* @param includeHeaders Whether to include headers in the output.
* @return The compressed payload string.
*/
public static String compressPayload(String payload, boolean compress, boolean verbose, boolean includeHeaders) {
if (payload == null) {
return ""; // Handle null payload
}
StringBuilder compressedPayload = new StringBuilder();
if (includeHeaders) {
compressedPayload.append("Headers: ").append(payload.substring(0, payload.indexOf("\n"))); // Extract headers
compressedPayload.append("\n");
}
if (compress) {
// Basic compression: Remove redundant whitespace
String cleanedPayload = payload.replaceAll("\\s+", " "); //Replace multiple spaces with a single space
compressedPayload.append("Compressed Payload:\n");
compressedPayload.append(cleanedPayload);
} else {
compressedPayload.append("Payload:\n");
compressedPayload.append(payload);
}
if (verbose) {
compressedPayload.append("\n--- Details ---\n");
compressedPayload.append("Original Length: ").append(payload.length()).append("\n");
compressedPayload.append("Compressed Length: ").append(compressedPayload.length()).append("\n");
}
return compressedPayload.toString();
}
public static void main(String[] args) {
String testPayload = "This is a test payload.\nIt has multiple lines.\nWith some extra spaces here.";
// Example Usage
String compressed1 = compressPayload(testPayload, true, false, true); // Compress, no verbose, include headers
System.out.println(compressed1);
String compressed2 = compressPayload(testPayload, false, true, false); // No compress, verbose, no headers
System.out.println(compressed2);
String compressed3 = compressPayload(testPayload, true, true, false); // Compress, verbose, no headers
System.out.println(compressed3);
String compressed4 = compressPayload(testPayload, false, false, true); // No compress, no verbose, include headers
System.out.println(compressed4);
}
}
Add your comment