1.0.1 • Published 4 years ago

mini-program-axios v1.0.1

Weekly downloads
10
License
ISC
Repository
github
Last release
4 years ago

mini-program-axios

小程序原生网络请求api没有类似axios请求类库的一些功能,如:请求,响应拦截器功能,以及没有请求,响应数据转换功能;mini-program-axios是一个类似axios的请求模块,默认支持微信,支付宝小程序,如果你还需要支持其他小程序,你需要更新请求适配器adapter

axios 与 mini-program-axios

功能点axiosmini-program-axios
适配器默认支持浏览器与node端默认支持微信,支付宝小程序端
请求/响应拦截器支持支持
transformRequest支持支持
处理headers'content-type'根据请求数据data小程序原生处理
transformResponse支持(可模拟响应数据结构,测试非常有用)支持(可模拟响应数据结构,测试非常有用)
get,post,put...快捷方法支持不支持,与小程序原生api用法保持一致

备注:小程序请求api设置请求超时无效

安装

npm i mini-program-axios -S
yarn add mini-program-axios

使用

import axios from 'mini-program-axios'

/**
 * 小程序请求默认配置
 * api文档:https://opendocs.alipay.com/mini/api/owycmh
 */
const request = axios.create({
  timeout: 30000, // ms
  dataType: 'json',
  method: 'GET',
  headers: {
    'content-type': 'application/json'
  },
});

// 设置请求拦截器,响应拦截器
request.interceptors.request.use(
  setRequestConfig,
  error => Promise.reject(error)
);

request.interceptors.response.use(
  handlerResponse,
  error => Promise.reject(error)
);

request.interceptors.response.use(
  data => data,
  error => Promise.reject(error)
);

// 同微信/支付宝小程序请求参数
request({
  url: '/api/xxx',
  method: 'POST',
  data: {},
  headers: {},
  dataType: 'json',
})
  .then(res => {
    // TODO res
  })
  .catch(err => {
    // TODO err
  })