axios-factory-sdk
v1.0.1
Published
基于 axios 的 HTTP 客户端工厂 - 支持 JSON 配置驱动、自动认证、API 测试
Downloads
16
Maintainers
Readme
axios-factory-sdk
基于 axios 的 HTTP 客户端工厂 - 支持 JSON 配置驱动的 API 调用和测试
特性
- 双模式支持: 兼容旧版 API + 新版 JSON 配置驱动
- 认证管理: 自动登录、Cookie/Token 管理、401 自动重登
- 变量流转: 支持
${var}模板语法,接口间数据自动传递 - 测试能力: 可选的测试模块,支持流程编排和断言
安装
npm install axios-factory-sdk快速开始
方式一: 旧版兼容模式
import { AxiosFactory } from 'axios-factory-sdk';
const client = new AxiosFactory({
app: {
name: '测试应用',
auth: {
uri: '/api/auth/login',
data: { username: 'admin', password: '123456' },
tokenKeys: ['Authorization']
}
},
axios: {
baseURL: 'https://api.example.com'
}
});
// 初始化登录
await client.initialize();
// 使用 axios 客户端
const response = await client.axiosClient({ url: '/api/user/me' });
console.log(response.data);方式二: 新版配置驱动模式
import { AxiosFactory } from 'axios-factory-sdk';
const client = new AxiosFactory({
baseUrl: 'https://api.example.com',
app: {
name: '测试应用',
auth: {
enabled: true,
uri: '/api/auth/login',
data: { username: 'admin', password: '123456' },
tokenPath: '$.access_token'
}
},
apis: {
login: {
method: 'POST',
path: '/api/auth/login',
request: {
body: { username: 'admin', password: '123456' }
},
extract: {
token: '$.access_token'
}
},
getUserInfo: {
method: 'GET',
path: '/api/user/me',
request: {
headers: {
'Authorization': 'Bearer ${token}'
}
}
}
}
});
// 初始化登录
await client.initialize();
// 执行 API
const result = await client.execute('getUserInfo');
console.log(result.data);配置说明
ClientConfig
| 字段 | 类型 | 说明 |
|-----|------|------|
| baseUrl | string | API 埯础地址 |
| app | AppConfig | 应用配置 |
| axios | AxiosRequestConfig | Axios 配置 |
| apis | ApisConfig | API 定义集合 |
AppConfig
| 字段 | 类型 | 说明 |
|-----|------|------|
| name | string | 应用名称 |
| auth | AuthConfig | 认证配置 |
| headers | Record<string, string> | 默认请求头 |
AuthConfig
| 字段 | 类型 | 说明 |
|-----|------|------|
| enabled | boolean | 是否启用认证 |
| uri | string | 登录接口 URI |
| data | object | 登录请求数据 |
| tokenKeys | string[] | 从响应头提取的 Token 键名 |
| tokenPath | string | 从响应体提取 Token 的 JSONPath |
ApiConfig
| 字段 | 类型 | 说明 |
|-----|------|------|
| method | HttpMethod | HTTP 方法 |
| path | string | API 路径,| request | RequestConfig | 请求配置 |
| extract | Record<string, string> | 变量提取配置 |
API
初始化
await client.initialize();执行登录认证。
执行 API
const result = await client.execute('apiName', {
params: { id: 1 },
query: { page: 1 }
});使用 axiosClient
const response = await client.axiosClient({
method: 'GET',
url: '/api/users/1'
});License
MIT
