1.2 KiB

Request id

A good thing to know is that every request passed through this interceptor, has an id. This does not mean that is a unique id. The id is used in a number of ways, but the most important is to bind a request to its cache.

The id generation is good enough to generate the same id for theoretically sames requests. The example of this is a request with { baseURL: 'https://a.com/', url: '/b' } results to the same id with { url: 'https://a.com/b/' }.

Also, a custom id can be used to treat two requests as the same.

const Axios = require('axios');
const { setupCache } = require('axios-cache-interceptor');

// Global
setupCache(Axios);

const { id } = await Axios.get('https://jsonplaceholder.typicode.com/posts/1', {
  baseURL: 'baseURL',
  query: { name: 'value' }
});

console.log('Id 1: ' + id);
console.log('Cache 1:', await Axios.storage.get(id));

const { id: id2 } = await Axios.get('https://jsonplaceholder.typicode.com/posts/1', {
  id: 'my-overrided-id'
});

console.log('Id 2: ' + id2);
console.log('Cache 2:', await Axios.storage.get(id2));

The default id generation can clarify this idea.