import java.util.HashMap;
import java.util.Map;
public class ApiCacheInvalidator {
private static final Map<String, Long> cache = new HashMap<>(); // Simulate a cache
private static final int INVALIDATION_INTERVAL_SECONDS = 60; // Invalidation frequency
public static void invalidateCache(String endpoint) {
// Invalidate the cache entry for the given endpoint.
cache.remove(endpoint);
System.out.println("Invalidated cache for endpoint: " + endpoint);
}
public static void invalidateAll() {
cache.clear();
System.out.println("Invalidated all cache entries.");
}
public static boolean isCacheValid(String endpoint) {
return !cache.containsKey(endpoint);
}
public static void main(String[] args) {
// Example usage (development environment)
// Simulate an API endpoint
String endpoint1 = "/users";
String endpoint2 = "/products";
// Invalidate the cache for specific endpoints
invalidateCache(endpoint1);
invalidateCache(endpoint2);
// Check cache validity
System.out.println("Is cache valid for " + endpoint1 + "? " + isCacheValid(endpoint1));
System.out.println("Is cache valid for " + endpoint2 + "? " + isCacheValid(endpoint2));
System.out.println("Is cache valid for /orders? " + isCacheValid("/orders"));
//Invalidate all cache entries
invalidateAll();
System.out.println("Is cache valid for " + endpoint1 + "? " + isCacheValid(endpoint1));
System.out.println("Is cache valid for " + endpoint2 + "? " + isCacheValid(endpoint2));
System.out.println("Is cache valid for /orders? " + isCacheValid("/orders"));
}
}
Add your comment