Я строю довольно большой SPA, используя Vue (и Laravel для RESTful API). Я с трудом нахожу ресурсы по этому поводу в Интернете - что является хорошей практикой для организации кода, который взаимодействует с сервером?
В настоящее время у меня есть файл src/api.js
, который использует axios
и определяет некоторые базовые методы, а также определенные конечные точки API (усеченные):
import axios from 'axios';
axios.defaults.baseURL = process.env.API_URL;
const get = async (url, params = {}) => (await axios.get(url, { params }));
const post = async (url, data = {}) => (await axios.post(url, data));
export const login = (data) => post('users/login', data);
И тогда в моем компоненте я могу сделать
...
<script>
import { login } from '@/api';
...
methods: {
login() {
login({username: this.username, password: this.password})
.then() // set state
.catch() // show errors
}
}
</script>
Это хорошая практика? Должен ли я разделить свои конечные точки на несколько файлов (например, auth
, users
, documents
и т. Д.)? Есть ли лучший дизайн для такого рода вещей, особенно когда дело доходит до повторения (например, обработка ошибок, отображение полос загрузки и т. Д.)?
Спасибо!