全量入口与按需入口
全量入口(默认)
@hydd/request-guard 是全量入口,默认安装 duplicate、retry、circuitBreaker 三个能力,用于保持现有 Web / Axios 用户零迁移。
javascript
import { setupRequestGuard } from '@hydd/request-guard';
// duplicate / retry / circuitBreaker 已自动安装按需入口(core)
小程序等包体积敏感项目请从 @hydd/request-guard/core 接入。core 默认不安装任何能力,需要显式传入 capabilities:
javascript
import { setupRequestGuard } from '@hydd/request-guard/core';
import { duplicate, retry } from '@hydd/request-guard/capabilities';
const guardedRequest = setupRequestGuard(wxRequest, {
capabilities: [
duplicate(),
retry()
],
defaults: {
duplicate: {
message: '请勿重复提交'
},
retry: {
attempts: 2,
delay: 300
}
},
rules: [
{ method: 'post', duplicate: true },
{ method: 'get', retry: true }
]
});单能力子路径
如果要进一步控制小程序包体,可使用单能力子路径,只打包你真正用到的能力:
javascript
import { setupRequestGuard } from '@hydd/request-guard/core';
import duplicate from '@hydd/request-guard/capabilities/duplicate';
const guardedRequest = setupRequestGuard(wxRequest, {
capabilities: [duplicate()],
rules: [{ method: 'post', duplicate: true }]
});能力工厂 vs defaults
能力工厂(duplicate() / retry())主要用于声明"安装哪些能力",推荐把项目默认参数写在 defaults 里。如果 rules、defaults 或请求级 requestGuard 写到了未注册的能力,开发环境会输出告警并忽略该配置。
