1.0.5 • Published 4 months ago

http-cache-request v1.0.5

Weekly downloads
-
License
ISC
Repository
-
Last release
4 months ago

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);
  }
};

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change