2.0.1 • Published 2 years ago

fshows-fetch v2.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

fshows-fetch 请求工具

安装

npm install fshows-fetch --save

使用场景

H5日志上报

  • axios 小程序日志上报
  • 微信小程序
    • wx.request
  • 支付宝小程序
    • my.request

签名参数 signParams

参数名称类型是否必填描述默认值
appidString选填应用id
saltString选填
versionString选填版本号

请求参数 reqOptions

参数名称类型是否必填描述默认值
baseUrlString必填基本url
baseUrlSuffixString选填url 后缀,比如gateway默认空字符串
urlString必填接口方法名
methodString选填请求方式POST,可用值POST|GET
timeoutNumber选填超时时间不填默认使用全局的超时时间,10000
formatTypeString选填数据格式urlencode,可用值为json | formdata | urlencoded
dataTypeString选填dataTypejson
dataObject选填请求数据
retryTimesNumber选填请求次数 接口请求失败时自动重新请求1
headerObject选填请求头部 可在此设置请求头部请求格式、token
sendRawDataBoolean选填是否上传原始请求数据(为true时,常规请求接口,false,付呗方式请求接口)false
returnRawDataBoolean选填不处理返回参数,否则返回res.datafalse
isMockBoolean选填是否mock
switchGatewayBoolean选填接口错误是否切换域名,设置了备用requerySite才会真正生效 true

设置全局参数

setSignParams - 设置加盐密钥

import FsFetch from 'fshows-fetch'

// 方式一
const fsFetch = new FsFetch({
  appid:'xxxx',
  salt:'xxxx',
  version:'1.0.0'
})

// 方式二
const fsFetch = new FsFetch()
fsFetch.setSignParams({
  appid:'xxxx',
  salt:'xxxx',
  version:'1.0.0'
})

setTimeout - 设置超时时间

不设置,默认10000ms;改方法兼容旧版本 setAxiosTimeout 方法

import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

fsFetch.setTimeout(12000)

setDefaultHeader - 设置默认Content-Type 不设置,默认urlencoded;支持入参json,formdata,urlencoded

import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

fsFetch.setDefaultHeader ('urlencoded')

// json: { 'Content-Type': 'application/json;charset=UTF-8' },
// formdata: { 'Content-Type': 'multipart/formdata;charset=UTF-8' },
// urlencoded: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'

setMockUrl - 设置mock地址

全局设置了mock地址后,需要设置request方法的isMock: true才会生效

import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

fsFetch.setMockUrl ('https://xxx')

// 需要在request传入isMock: true才会生效
// fsFetch.request({
//   ...
//   isMock: true
//   ...
// })

setInterceptor - 是否启用防重复请求

默认防重复点击开启,false 关闭

import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

fsFetch.setInterceptor (false)

setRequerySite - 设置备用域名

支持单个域名或域名列表,string | Array

import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

fsFetch.requerySite ('https://xxx')
// or
fsFetch.requerySite (['https://xxx1', 'https://xxx2'])

setSwitchGateway - 是否允许切换域名

  • 默认是允许切换域名的,如果设置了备用域名,当接口请求错误则自动切换为备用域名。
  • 如果该设置设置为false, 则禁用切换域名
import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

fsFetch.setSwitchGateway(false)

setDeleteKeyName - 校验参数需删除的参数名

默认删除signParams中的salt字段

import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

fsFetch.setDeleteKeyName('xxx')

自定义处理方法

customHandleParams - 自定义请求参数处理方法

import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

/**
 * 自定义请求参数处理方法
 * @param data reqOptions.data
 * @param signParams 加签
 * @param reqOptions 请求的参数
 */
fsFetch.customHandleParams = (data, signParams, reqOptions) => {

}

customJudgeSuccess - 用户自定义成功判断函数

默认(result.success || result.code === '00000')判断为接口成功

import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

/**
 * 自定义请求参数处理方法
 * @param result httpResult
 */
fsFetch.customJudgeSuccess = (result) => {
  // return Boolean
}

请求回调方法

customErrorHandle - 错误回调

可在此上传报错日志

import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

/**
 * 错误回调
 * @param error 返回的错误数据
 * @param reqData 处理过请求的数据
 * @param reqOptions 请求的参数
 * @param context { baseUrl?: 当前请求的baseUrl, useTimes: 当前请求错误次数 } 当前请求的一些状态
 */
fsFetch.customErrorHandle = (error, reqData, reqOptions, { baseUrl, useTimes }) => {

}

customSuccessHandle - 成功回调

import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

/**
 * 成功回调
 * @param error 返回的错误数据
 * @param reqData 处理过请求的数据
 * @param reqOptions 请求的参数
 * @param context { baseUrl?: 当前请求的url, useTimes: 当前请求错误次数 } 当前请求的一些状态
 */
fsFetch.customErrorHandle = (result, reqData, reqOptions, { baseUrl, useTimes })=>{

}

customFinallyHandle - 请求结束回调

可以在这个里处理loading

import FsFetch from 'fshows-fetch'
const fsFetch = new FsFetch()

/**
 * complate回调
 * @param error 返回的错误数据
 * @param reqData 处理过请求的数据
 * @param reqOptions 请求的参数
 * @param context { url: 当前请求的url, useTimes: 当前请求错误次数 } 当前请求的一些状态
 */
fsFetch.customFinallyHandle = (result, reqData, reqOptions, { url, useTimes }) => {
	if (reqOptions.loading) {
    wx.hideLoading()
  }
}

// 需要在request传入loading
// fsFetch.request({
//   ...
//   loading: true
//   ...
// })
2.0.1

2 years ago

2.0.0

2 years ago

1.0.19

2 years ago

1.0.20

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.9

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago