axios api封装
时间: 2023-10-29 07:53:17 浏览: 98
axios 面向对象封装
axios是一个基于Promise的HTTP客户端,用于发送HTTP请求。这里是一个简单的axios API封装示例:
```javascript
import axios from 'axios';
// 创建一个axios实例
const instance = axios.create({
baseURL: 'http://api.example.com', // 设置基础URL
timeout: 5000, // 请求超时时间
});
// 封装get请求
export function get(url, params) {
return new Promise((resolve, reject) => {
instance
.get(url, { params })
.then(response => {
resolve(response.data);
})
.catch(error => {
reject(error);
});
});
}
// 封装post请求
export function post(url, data) {
return new Promise((resolve, reject) => {
instance
.post(url, data)
.then(response => {
resolve(response.data);
})
.catch(error => {
reject(error);
});
});
}
```
这个示例中,首先通过`axios.create`方法创建了一个axios实例,可以设置一些默认的配置参数,比如baseURL和timeout。
然后,我们封装了两个常用的请求方法:`get`和`post`。在这些封装的方法中,我们通过调用axios实例的对应方法来发送请求,并返回一个Promise对象。
这样,在其他地方使用封装好的axios API时,可以更加简洁地进行请求操作。例如:
```javascript
import { get, post } from './api';
get('/users', { page: 1, limit: 10 })
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
post('/login', { username: 'admin', password: '123456' })
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
```
这样做的好处是,可以在项目中统一处理请求的配置和错误处理,提高代码的可维护性和复用性。同时,也方便了后续对axios的升级和配置调整。当然,具体的封装方式还可以根据实际需要进行更多的扩展和优化。
阅读全文