В моем приложении VueJS я начал настраивать службы Ax ios для обработки вызовов API.
Для каждой части приложения есть один сервис, например, у меня есть разные службы для обработки API вызовы на таких страницах, как: usersService. js, blogService. js, contactService. js, statisticsService. js, adminService. js, et c.
Сервисный файл выглядит примерно так:
import axios from "axios"
const apiClient = axios.create({
baseURL: `http://foo.bar/api/`,
withCredentials: false,
headers: {
Accept: "application/json",
"Content-Type": "application/json"
}
})
export default {
get() {
return apiClient.get("users")
},
set(data) {
return apiClient.post("users", data)
}
}
Поскольку у меня есть множество служебных файлов, было бы очень удобно создать базовый файл конфигурации, из которого все службы получают свою конфигурацию, например, baseURL, тип контента.
Допустим, я хочу, чтобы эта часть была разделена между всеми службами, поэтому я могу создать базовый файл конфигурации для этого:
import axios from "axios"
export default axios.create({
baseURL: `http://foo.bar/api/`,
withCredentials: false,
headers: {
Accept: "application/json",
"Content-Type": "application/json"
}
})
И я мог бы вызвать его из файла службы, например: userService:
import HTTP from "@/baseConfig"
export default {
get() {
return HTTP.get("users")
},
set(data) {
return HTTP.post("users", data)
}
}
Однако я хочу иметь возможность добавлять / изменять некоторые из этих значений по умолчанию в каждом отдельном служебном файле, когда это необходимо.
Можно ли расширить или изменить некоторые из тех алре ady предопределенные настройки, такие как baseURL или другие параметры конфигурации из этих служебных файлов?
Я хочу сделать что-то вроде этого (обратите внимание на изменение базового URL) - что не работает:
import HTTP from "@/baseConfig"
HTTP.baseURL = "http://foo.bar/api/special/"
export default {
get() {
return HTTP.get("users")
},
set(data) {
return HTTP.post("users", data)
}
}
В этом случае я хотел изменить baseURL для получения данных от специальных пользователей. Возможно ли это как-то? Это, вероятно, какое-то базовое c Javascript правило, о котором я не знаю - поэтому извиняюсь, если это базовый c вопрос.