@clownlee/cores
v1.0.13
Published
公共核心库,提供统一的 HTTP 请求能力和自动 token 刷新功能
Readme
@clownlee/request
Axios 公共通用库,提供统一的 HTTP 请求能力和自动 token 刷新功能。
功能特性
- ✅ TypeScript 支持
- ✅ baseUrl、headers 等配置封装
- ✅ 请求拦截器和响应拦截器
- ✅ 支持所有 HTTP 方法(get、post、put、patch、delete 等)
- ✅ 手动终止请求功能
- ✅ 自动添加 Bearer token
- ✅ 401 时自动刷新 token(通过 refreshToken)
安装
npm install @clownlee/request使用示例
import { init } from '@clownlee/request'
import { useUserStore } from '@/stores/user'
const userStore = useUserStore()
const http = init({
store: userStore, // pinia 实例
baseUrl: 'https://api.example.com',
timeout: 10000,
headers: {
'Content-Type': 'application/json'
},
refresh: {
baseUrl: 'https://api.example.com', // 一般情况 = 最外层的 baseUrl
path: '/api/v1/auth/refresh',
name: 'Authorization', // 请求头名称
token: userStore.refreshToken // 通过 pinia localStorage 存储的 refreshToken 值
}
})
// 使用 HTTP 方法
const data = await http.get('/api/users')
const result = await http.post('/api/users', { name: 'John' })
await http.put('/api/users/1', { name: 'Jane' })
await http.patch('/api/users/1', { name: 'Jane' })
await http.delete('/api/users/1')API
init(config)
初始化 HTTP 实例。
参数
config.store: Pinia store 实例,用于存储和获取 tokenconfig.baseUrl: 接口域名config.timeout: 超时时间(毫秒)config.headers: 请求头信息config.refresh: Token 刷新配置refresh.baseUrl: 刷新接口域名refresh.path: 刷新接口路径refresh.name: 请求头名称(默认为 'Authorization')refresh.token: refreshToken 值
返回值
返回 HTTP 实例,包含以下方法:
get(url, params?, config?)post(url, data?, config?)put(url, data?, config?)patch(url, data?, config?)delete(url, config?)request(config)createCancelToken(): 创建取消令牌cancelRequest(cancelToken, message?): 手动终止请求
