axios请求API和axios的封装
时间: 2023-11-09 09:03:23 浏览: 39
axios是一个基于Promise的HTTP客户端,可以用于浏览器和Node.js。它可以用于发送GET、POST、PUT、DELETE等请求,并且支持拦截器、取消请求、自动转换JSON数据等功能。
在使用axios发送请求时,需要先引入axios库,然后通过axios对象调用相应的方法,例如:
```javascript
import axios from 'axios';
axios.get('/api/user')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
```
上面的代码中,我们使用axios发送了一个GET请求,请求的地址是`/api/user`。当请求成功时,会在控制台输出响应数据;当请求失败时,会在控制台输出错误信息。
为了方便使用,我们可以将axios进行封装。例如,我们可以创建一个api.js文件,将所有的API请求都封装在这个文件中:
```javascript
import axios from 'axios';
const api = axios.create({
baseURL: 'http://localhost:3000/api',
timeout: 5000,
});
export const getUser = () => api.get('/user');
export const addUser = (data) => api.post('/user', data);
export const updateUser = (id, data) => api.put(`/user/${id}`, data);
export const deleteUser = (id) => api.delete(`/user/${id}`);```
上面的代码中,我们使用axios.create方法创建了一个axios实例,并设置了baseURL和timeout。然后,我们分别封装了获取用户、添加用户、更新用户和删除用户的API请求,并通过export导出这些方法。
在其他文件中,我们可以直接引入这些方法,并调用它们:
```javascript
import { getUser, addUser, updateUser, deleteUser } from './api';
getUser()
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
```