Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

http-cache-request

rumman16ISC1.0.6

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

react, cache, http-request, data caching, request caching, react cache, API caching, axios cache, REST API, React HTTP requests, performance optimization, data fetching, cache management, cache expiration, axios wrapper, API performance optimization

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