Я создаю приложение vuejs, в котором я использую axios, чтобы использовать мои остальные API.
Я в основном вызываю axios.get в разных местах, каждый раз создавая новый экземпляр с необходимыми заголовками аутентификации.
// UserdataComponent.vue
const anInstance = axios.create({
headers: {'X-API-TOKEN': store.state.token},
auth: {
username: SOME_USERNAME,
password: SOME_PASSWORD
}
})
anInstance.get(API_BASE_URL + '/userdata')
Это делается везде, где я делаю вызов API отдыха.
Итак, я хотел переместить это в отдельный файл, чтобы сохранить код СУХИМ.
Я переместил код создания экземпляра axios в отдельный файл и попытался экспортировать его как объект. Этот объект затем может быть импортирован туда, куда я хочу использовать остальные API.
Я ожидал, что что-то подобное сработает ....
// http.js
import axios from 'axios'
import store from 'store/store.js'
const HTTP = axios.create({
baseURL: API_BASE_URL,
headers: { 'X-API-TOKEN': store.state.token },
auth: {
username: SOME_USERNAME,
password: SOME_PASSWORD
}
})
export default HTTP
// UserdataComponent.vue
import HTTP from 'http.js'
...
HTTP.get('/userdata')
Это дало мне всевозможные ошибки, когда axios.create
возвращалось в виде строки вместо вызываемой функции.
Что я должен изменить здесь, чтобы заставить его работать так, как я хочу? Должен ли я даже использовать этот способ для модуляции механизма HTTP-запросов?