http-cache-request
v1.0.6
Published
This library provides a simple and efficient way to handle HTTP requests in your React applications with built-in caching. It uses axios for HTTP requests and supports caching GET, POST, and other request methods for configurable durations. By leveraging
Downloads
440
Maintainers
Readme
React Request and Caching Library
This library provides a simple and efficient way to handle HTTP requests in your React applications with built-in caching. It uses axios for HTTP requests and supports caching GET, POST, and other request methods for configurable durations. By leveraging this library, you can improve the performance of your React app by avoiding repeated requests for the same data.
Installation
npm i http-cache-request
Making a Get Request.
When a GET request is made, the caching system checks if a cached response exists for the generated cache key. If a matching cache entry is found and it is still valid (not expired), the cached response is returned, preventing an unnecessary API call. If no cached entry exists or the entry has expired, a new request is sent to the API, and the response is stored in the cache for future use.
import requestWithCache from "http-cache-request";
const fetchData = async () => {
try {
const data = await requestWithCache({
url: "https://api.example.com/data",
params: { userId: 123 },
isCache: true, // Enable caching (default: true)
cacheDuration: 300000, // Cache duration in milliseconds (optional)
method: "GET", // HTTP method (default: GET)
});
console.log(data);
} catch (error) {
console.error("Error fetching data:", error);
}
};
Sending a POST Request with Caching
For POST requests, the caching mechanism functions similarly. If a POST request is made with the same URL and identical payload (body) as a previous request, and the request parameters remain unchanged, the system will return the cached response instead of sending a new request. However, if the payload changes (even slightly), a new API request will be initiated to fetch the latest data, and the new response will be cached for subsequent requests.
const postData = async () => {
try {
const data = await requestWithCache({
url: "https://api.example.com/post",
body: { name: "John Doe", age: 30 },
isCache: false, // Disable caching for this request
method: "POST",
});
console.log(data);
} catch (error) {
console.error("Error sending data:", error);
}
};
Clearing a specific cache
If you'd like to clear a specific cache, you can do so, remembering that the body and parameters are optional.
import requestWithCache, { clearCache } from "http-cache-request";
clearCache({ url: "https://api.example.com", params: { userId: 123 }, body: { name: "John Doe", age: 30 } });
Clearing the entire cache
If you'd like to clear the entire cache, simply call the function without any parameters
import requestWithCache, { clearCache } from "http-cache-request";
clearCache();
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change