更新记录

1.0.0(2026-11-05) 下载此版本

1.0.0

  • 首个版本,第 13 批插件。
  • 网络请求层:拦截器 / 重试 / 并发 / 缓存 / 取消

平台兼容性

PlugKit 请求套件

网络请求层:拦截器 / 重试 / 并发 / 缓存 / 取消

零依赖 uni.request 封装:三层错误模型(网络/HTTP/业务)、可配业务码与数据字段、幂等重试退避、并发限流、请求去重与取消、TTL 缓存。

零第三方依赖 · 零系统权限 · 无需 uniCloud · 不联网、不采集、不上报。

5 分钟接入

  1. 把 uni_modules/pk-request/ 拷进你的 uni-app 工程(或用 HBuilderX 从插件市场导入)。
  2. 在需要的地方引入:
import pk from '@/uni_modules/pk-request/js_sdk/index.js'

pk.init(/* 可选配置 */)
const r = pk./* 方法 */()
  1. 完整可运行工程见 example/(导入即跑,每个公开方法都有演示按钮)。

API

方法 说明
init(options) 全局配置:baseURL / timeout / headers / retry / concurrency / cache / dedupe / isSuccess / dataField
request(options) 发起请求,返回 { ok, data, raw, statusCode, error, fromCache, attempts },永不抛错
get / post / put / del / patch(url, data, opts) 语义化快捷方法
onRequest / onResponse / onError(fn) 三类拦截器;onError 收到已分类的 { kind, code, message }
cancel(key) / cancelAll() 按去重键或全部取消在途请求
clearCache() / stats() 清缓存 / 查看在途数、缓存数、累计请求与重试次数

自定义传输 / 注入点(演示与单测可用)

pk.setDriver(fn) 注入自定义传输层(演示页用它做零后端 mock;正式接入不调用即走 uni.request);pk.setSleep(fn) 注入退避等待便于单测。

错误码

码 含义
E-RQ-01 URL 为空或非法
E-RQ-02 请求超时
E-RQ-03 网络不可达
E-RQ-04 HTTP 状态码非 2xx
E-RQ-05 业务码判定失败
E-RQ-06 请求被取消
E-RQ-07 重复请求被去重
E-RQ-10 缓存读写失败

竞品痛点 → 设计决策

痛点 本插件
拦截器把业务码和 HTTP 状态码混为一谈,自定义 code 处理不了 三层错误模型 network / http / business 分开派发;业务成功与否交给接入方 isSuccess(res) 谓词,插件不臆断
响应体字段写死 data,后端返回 rows / list 就取不到 dataField 可配字符串、数组路径或函数;取不到时原样返回 raw,绝不静默丢数据
断网时防重把请求永久锁死,恢复后再也发不出去 去重键只在请求在途期间存活,成功/失败/取消/异常一律释放;断网属于可重试错误不进黑名单
重试把非幂等请求也重放,造成重复下单 仅对 GET/HEAD/PUT/DELETE 等幂等方法或显式标记的请求重试;POST 默认不重试;退避带抖动
找不到插件包 / 引入路径靠猜 uni_modules 标准结构 + 完整可导入 example 工程 + 文档三步接入

兼容性

见 docs/compatibility.md。纯逻辑 API 已通过 node 单测;真机项按 HBuilderX 云打包验证。

目录

pk-request/
├── README.md / CHANGELOG.md
├── uni_modules/pk-request/    # 发布包(package.json + js_sdk/)
├── example/             # 完整可导入 HBuilderX 工程 + 演示页
├── docs/                # 在线文档 HTML / listing.md / compatibility.md
└── tests/run.test.js    # node 单测(node tests/run.test.js)

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。