Почти все мои компоненты требуют некоторого взаимодействия с моим apiservice. js классом, который импортирует Ax ios и делает соответствующие http-запросы в зависимости от вызываемого метода. Я знаю, что это обычно не рекомендуется, но в каждом из моих компонентов у меня есть следующее:
import {APIService} from '../store/APIService.js';
const apiService = new APIService();
Мой APIService. js выглядит примерно так (урезано для простоты):
import axios from 'axios';
const API_URL = 'http://myserver:82/services/locationmanagement';
export class APIService{
constructor(){
}
getLocations() {
const url = `${API_URL}/api/locations/`;
return axios.get(url).then(response => response.data);
}
saveLocation(location) {
let url = `${API_URL}/api/locations/`;
let id = location.id;
let httpMethod = 'post';
if(id > 0 ) {
httpMethod = 'put';
url = `${API_URL}/api/locations/${id}`;
}
let options = {
method: httpMethod,
url: url,
headers: { 'Content-Type': 'application/json' },
data: location
}
return axios(options);
}
}
Я бы предпочел, чтобы это было каким-то образом сделано доступным для глобального экземпляра Vue, и мои компоненты могли бы каким-то образом получить к нему доступ.
Я считаю, что это должно быть реализовано в той или иной форме в моем main. js файл, возможно, через Vue .use, но я до сих пор не уверен в том, как реализовать это, даже после просмотра документов.
Любая информация будет принята с благодарностью , Спасибо!