Appearance
@mbjia/pure-request
何时使用
| 场景 | 是否适合 |
|---|---|
| SharedWorker、ServiceWorker 或纯函数环境发请求 | 适合 |
| React 页面业务接口 | 优先使用 @mbjia/services |
| 需要统一 toast/鉴权错误广播 | 适合 |
导出
ts
export * from '@mbjia/site-env'
export const handleNetworkError: (errStatus: number) => void
export const handleAuthError: (res: any) => boolean
export const pureRequest: (options: IReuest) => Promise<any>pureRequest
ts
const res = await pureRequest({
url: '/veasset/list',
method: 'post',
data: {
token,
page: 1,
page_size: 20,
},
})入参:
ts
interface IReuest extends AxiosRequestConfig {
requestType?: number
data: {
token: string
[key: string]: any
}
method?: 'get' | 'post'
}| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
url | string | 是 | - | 请求路径,会拼接 API_ENV.host。 |
method | 'get' | 'post' | 否 | 'post' | 请求方法。源码同时兼容大写 GET。 |
data.token | string | 是 | - | 会写入请求头 user-token。 |
data | object | 是 | - | 业务参数;token 会从请求体中剥离。 |
requestType | number | 否 | 1 | 当前所有分支都使用 env.host。 |
返回值:
| 字段 | 类型 | 说明 |
|---|---|---|
success | boolean | 请求是否按业务成功。 |
message | string | 服务端 message 或 HTTP statusText。 |
statusCode | number | HTTP 状态码。 |
| 其他字段 | any | 服务端 data.data 会被展开到返回对象上。 |
错误处理
pure-request 使用 BroadcastChannel('sw:uppy:event') 向外广播错误消息。
| 方法 | 说明 |
|---|---|
handleNetworkError(errStatus) | HTTP 状态码转中文错误提示,并广播 errorMsg。 |
handleAuthError(res) | 处理登录过期、验证码错误、无权限、模板不存在等业务错误码。 |
鉴权错误码:
| 错误码 | 提示 |
|---|---|
40068、40015、40035 | 登录状态已过期。 |
40008 | 请输入正确的验证码。 |
40020 | 商品不存在。 |
40114 | 暂无操作权限。 |
40038 | 模板不存在。 |