快速开始
安装
bash
# 安装核心包
pnpm add @wl-request/core
# 可选:安装额外的适配器
pnpm add @wl-request/adapter-axios
pnpm add @wl-request/cache-adapter-memory
pnpm add @wl-request/cache-adapter-indexeddb基本使用
typescript
import { createRequest } from '@wl-request/core'
// 创建请求实例
const request = createRequest({
url: '/api/users',
method: 'GET'
})
// 发送请求
async function loadData() {
try {
const response = await request.send()
console.log('数据:', response.data)
} catch (error) {
console.error('错误:', error)
}
}
// 调用函数
loadData()配置适配器
默认使用 fetch 适配器,可以切换到其他适配器:
方式一:在请求配置中直接传入适配器(推荐)
typescript
import { createRequest } from '@wl-request/core'
import { AxiosAdapter } from '@wl-request/adapter-axios'
// 创建请求实例并指定适配器
const request = createRequest({
url: '/users',
method: 'GET',
baseURL: 'https://api.example.com',
adapter: new AxiosAdapter() // 直接传入适配器
})
// 发送请求
async function loadData() {
const response = await request.send()
console.log('数据:', response.data)
}
loadData()方式二:注册并设置为默认适配器
typescript
import { registerAdapter, setDefaultAdapter } from '@wl-request/core'
import { AxiosAdapter } from '@wl-request/adapter-axios'
// 创建并注册 axios 适配器
const axiosAdapter = new AxiosAdapter()
registerAdapter('axios', axiosAdapter)
setDefaultAdapter(axiosAdapter)启用缓存
typescript
import { createRequest, setDefaultCacheAdapter, LocalStorageCacheAdapter } from '@wl-request/core'
// 设置默认缓存适配器
setDefaultCacheAdapter(new LocalStorageCacheAdapter())
const request = createRequest({
url: '/users',
method: 'GET',
baseURL: 'https://api.example.com',
cache: {
key: 'users-list',
ttl: 60000 // 缓存 60 秒
}
})
async function loadData() {
const response = await request.send()
console.log('数据:', response.data)
}
loadData()启用重试
typescript
import { createRequest, RETRY_STRATEGY } from '@wl-request/core'
const request = createRequest({
url: '/api/users',
method: 'GET',
baseURL: 'https://api.example.com',
retry: {
count: 3,
delay: 1000,
strategy: RETRY_STRATEGY.EXPONENTIAL
}
})
async function loadData() {
try {
const response = await request.send()
console.log('数据:', response.data)
} catch (error) {
console.error('错误:', error)
}
}
loadData()