https://github.com/xz-77/axios-adapter-miniprogram
基于Axios扩展小程序网络请求库
https://github.com/xz-77/axios-adapter-miniprogram
axios miniprogram network wechat
Last synced: 5 months ago
JSON representation
基于Axios扩展小程序网络请求库
- Host: GitHub
- URL: https://github.com/xz-77/axios-adapter-miniprogram
- Owner: xz-77
- License: mit
- Created: 2022-04-08T02:14:44.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-06-17T10:27:53.000Z (about 4 years ago)
- Last Synced: 2025-10-29T05:43:12.786Z (8 months ago)
- Topics: axios, miniprogram, network, wechat
- Language: TypeScript
- Homepage: https://xz-77.github.io/axios-adapter-miniprogram
- Size: 409 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# axios-adapter-miniprogram
## 使用方式
### axios-adapter-wechat
根据`Axios`适配了微信小程序`wx.request`没有进行环境的判断
```bash
$ yarn add axios-adapter-wechat
# or
$ npm install axios-adapter-wechat --save-dev
```
```javascript
// 判断小程序环境
import axios, { AxiosAdapter } from 'axios';
import wechatAdapter from 'axios-adapter-wechat';
if (typeof wx !== 'undefined' && !!wx?.request && Object.prototype.toString.call(wx?.request) === '[object Function]') {
// 用来判断是否小程序环境 默认 timeout = 15s
axios.defaults.adapter = wechatAdapter as AxiosAdapter;
}
```
### axios-adapter-miniprogram
根据`axios-adapter-wechat`集成了微信小程序环境判断,直接引用即可,其他的与`Axios`保持一致
```bash
$ yarn add axios-adapter-miniprogram
# or
$ npm install axios-adapter-miniprogram --save-dev
```
```javascript
import axios from 'axios-adapter-miniprogram';
```
## 为什么要写这个库
- 现在小程序的开发越来越多,每个小程序在网络请求方面都有官方自己的实现,但是不论在请求参数还是返回属性甚至使用习惯上,都不是很统一
- 希望和 H5、PC、Node 等不同客户端上进行对齐
- 相对来说有稍微看过 [Axios](https://www.axios-http.cn/docs/intro) 的源码,而且 [Axios](https://www.axios-http.cn/docs/intro) 的每周[下载量](https://www.npmjs.com/package/axios)在几千万的数量级,如果和 axios 对齐,大家都比较熟悉,好上手
- 希望通过这个库来让开发人员不论从使用习惯,api 调用都和其他端对齐,在网络请求这个节点上抹平不同端所带来的影响
## 解决方案
1. 使用 Axios 并扩展 Axios 的 adapter 方法
2. [Axios](https://www.axios-http.cn/docs/intro)
## 新手上路
1. 基于 `Axios` 的 `adapter` 方法兼容原生 `wx` 小程序网络请求(没有使用除 `axios` 以外第三方包)
2. 兼容网络请求 `API` 与 `Axios` 一致,具体调用文档看[Axios 官网](https://www.axios-http.cn/docs/intro)
3. 返回字段与 `Axios` 保持一致,这里没有使用 `wx` 小程序返回的原生字段,方便后续其他端网络请求的扩展
4. 目前仅扩展 `wx` 小程序网路请求
## 于 axios 不同的地方
- 微信的 form 表单提交[使用 wx.request 发送 multipart/form-data 请求的方法](https://developers.weixin.qq.com/community/develop/article/doc/0000cc0e5bc5d093c6f8be17254c13)