1.0.2 • Published 1 year ago

@pigjs/request v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

@pigjs/request

前端通用请求库,兼容 web/h5/小程序

安装

npm i @pigjs/request -S
// or yarn
yarn add @pigjs/request -S
// or pnpm
pnpm add @pigjs/request -S

注意

如果不是在 小程序项目中使用的话,需要自行安装 axios

使用

import { request, setConfig, setMessage } from '@pigjs/request';
import { message } from 'antd';
import axios from 'axios';

// 初始化请求库配置
setConfig({
    errorCode: {
        // 错误状态
        401: () => {
            // 未登录
        },
        502: () => {
            // 服务器部署中
        },
        504: () => {
            // 请求超时
        }
    },
    headers: () => {
        // headers 配置
        // 可以设置token等
    },
    resKeys: {
        // 后端返回到格式
        code: 'status',
        data: 'data',
        message: 'message'
    },
    requestInstance: axios
});

setMessage({
    loading: (content) => {
        message.loading(content);
    },
    destroy: () => {
        message.destroy();
    },
    error: (content) => {
        message.error(content);
    }
});

const getData = () => {
    request(
        {
            method: 'GET',
            url: '',
            data: {}
        },
        {
            needLoading: false
        }
    );
};

const uploadFile = () => {
    request(
        {
            method: 'GET',
            url: '',
            data: {}
        },
        {
            responseType: 'blob'
        }
    );
};

const setList = () => {
    request({
        method: 'POST',
        url: '',
        data: {}
    });
};

API

方法

参数说明类型默认值
request请求方法function(options,extConfig)-
setConfig初始化配置function(config)-
setMessage初始化配置function(message)=>void-

options

参数说明类型默认值
url请求地址string-
data请求参数 bodyany-
params请求参数any-
method请求方式string'GET'
headers请求头any-
timeout超时时间number-

兼容其他 axios/weapp 请求参数

注意: GET 和 DELETE 请求时,param 如果没有填写,会自动填充为 data 的参数,如果不需要这种效果的,请 使用小写的 get、delete 在 weapp 中使用时,没有 params 参数的,@pigjs/request 请求层中做了一个兼容,但最终会把 params 变成 data 的

extConfig

参数说明类型默认值
type请求规范类型'restful' | 'code''restful'
requestType请求类型'axios' | 'weapp'-
successCode请求成功的状态码number[]200,204
errorCode请求失败的状态码处理key: number: (res: any, retryRequest?: any) => void-
headers请求头any-
showError是否提示错误booleantrue
needLoading是否需要 loadingbooleanfalse
loadingDelayloading 的延迟时间,避免闪烁number0
timeout超时时间number60000
resKeys返回格式ResKeys{code:'status',data:'data',message:'message'}
unknownMessage默认错误提示信息string'网络繁忙,请稍后再试'
baseURL请求前缀string | ((options: Options,config: ExtConfig) => string)-
mock是否走 mock 数据,url 前缀会加上一个/mockbooleanfalse
retryCount请求失败重试次数number-

config

基础 ExtConfig

参数说明类型默认值
concurrencyCount最大同时并发请求数number-
requestInstance请求类型实例 axios weappany-

message

参数说明类型默认值
loading请求加载 loading 方法(content: string) => void-
error请求报错提示方法(content: any) => void-
destroy请求清除 loading 方法() => void-

ResKeys

参数说明类型默认值
code返回状态的 keystring-
data返回 data 的 keystring-
message提示信息的 key(string((res: any) => string)

weapp

请求实例 weapp 可以是 wx.request 或者 taro.request

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago