@swiftcrab/request
v1.0.3
Published
- 安装: pnpm add @swiftcrab/request
Downloads
320
Readme
使用示例
- 安装: pnpm add @swiftcrab/request
创建 overFetch.ts
import {
RequestClient,
formatToken,
defaultResponseInterceptor,
authenticateResponseInterceptor,
errorMessageResponseInterceptor,
} from '@swiftcrab/request'
const baseURL = '/api'
function createRequestClient(baseURL: string) {
const client = new RequestClient({
baseURL,
})
/** 处理重新认证, 常用于回到登录页 */
async function doReAuthenticate() {}
/** 处理刷新token */
async function doRefreshToken() {
return ''
}
// 请求头处理
client.addRequestInterceptor({
fulfilled: config => {
return config
},
})
// 返回数据格式 { data: any, info: { code: number, message: string, status: boolean } }
client.addResponseInterceptor(
defaultResponseInterceptor({
/** 响应数据中代表访问结果的字段名 */
codeField: 'code',
/** 响应数据中装载实际数据的字段名,或者提供一个函数从响应数据中解析需要返回的数据 */
dataField: 'data',
/** 当codeField所指定的字段值与successCode相同时,代表接口访问成功。如果提供一个函数,则返回true代表接口访问成功 */
successCode: 200,
}),
)
client.addResponseInterceptor(
authenticateResponseInterceptor({
client,
doReAuthenticate,
doRefreshToken,
/** 是否启用刷新令牌 */
enableRefreshToken: true,
}),
)
client.addResponseInterceptor(
errorMessageResponseInterceptor((msg: string, error) => {
/** 处理错误消息 */
}),
)
return client
}
export const requestClient = createRequestClient(baseURL)
export const baseRequestClient = new RequestClient({ baseURL })使用 requestClient
import { requestClient } from './request'
requestClient.get('/user').then(res => {
console.log(res)
})