Complex Request (Axios Adapter)
这是一个为 @complex-suite/request 库设计的官方 axios 适配器。
它继承了 @complex-suite/request 的所有核心功能(如分层架构、强大的 Token 管理、自动化的登录/刷新流程等),并使用 axios 作为底层的 HTTP 请求客户端。
特性
- 继承
@complex-suite/request 的所有核心特性。
- 使用
axios 发送请求,您可以完全利用 axios 丰富的生态和功能。
- 允许在初始化时,传入
axios 的默认配置 (CreateAxiosDefaults)。
- 允许在每次请求时,传入特定于
axios 的配置 (AxiosRequestConfig)。
安装
npm install @complex-suite/request-axios axios @complex-suite/request
快速开始
这个库的使用方法与 @complex-suite/request 完全相同,您只需要将 BaseRequest 替换为 AxiosRequest 即可。
import { AxiosRequest } from '@complex-suite/request-axios';
import { Rule } from '@complex-suite/request';
import type { AxiosResponse, AxiosRequestConfig } from 'axios';
const myRule = new Rule<AxiosResponse>({
prop: 'api',
token: {
data: {
accessToken: { location: 'header', require: true }
}
},
parse: (response) => {
const { data } = response;
if (data.code === 200) {
return { status: 'success', data: data.data };
} else if (data.code === 401) {
return { status: 'login', data: null, msg: '请先登录' };
} else {
return { status: 'fail', data: null, msg: data.message };
}
},
login: () => {
}
});
const myRequest = new AxiosRequest({
baseUrl: 'https://api.example.com',
rule: myRule,
axios: {
timeout: 5000
}
});
myRequest.get({
url: '/user/profile',
local: {
onUploadProgress: (progressEvent) => {
}
} as AxiosRequestConfig
})
.then(response => {
console.log('用户信息:', response.data);
})
.catch(error => {
console.error('请求失败:', error);
});
依赖