Home > Back-end >  How do libraries to provide users a bindData function?
How do libraries to provide users a bindData function?

Time:12-14

I need to copy the behaviour of, for example, the "create" function of Axios:

// fileOne.js
import axios from 'axios';


const instance = axios.create({
  baseURL: 'https://some-domain.com/api'
});

Then to use that baseURL in another file, with another function like this:

// fileTwo.js
import axios from 'axios';

axios.get('/user/12345'); // https://some-domain.com/api/user/12345

Getting this as result: https://some-domain.com/api/user/12345

How does Axios to bind the baseURL data in his library.

I'm looking that library but i don't understand how they do that.

CodePudding user response:

Please see the official documentation Config Defaults section.

You can specify config defaults that will be applied to every request.

Global axios defaults

axios.defaults.baseURL = 'https://some-domain.com/api';

// use it later
axios.get('/user/12345')

Custom instance defaults

const instance = axios.create({
  baseURL: 'https://some-domain.com/api'
});

// use it later
instance.get('/user/12345')

Source code explanation of axios v1.2.1

The Axios class has a defaults property, axios will merge config when dispatch a request. The axios package will call createInstance to create an axios instance of the Axios class with built-in default config.

There is a buildFullPath function to build the full request URL use baseURL and requestedURL(Absolute or relative URL to combine, in your case, it's /user/12345)

  • Related