请求级配置
当你需要对某个具体请求进行单独配置时使用。请求级配置优先级最高,会覆盖规则和全局默认。
配置字段
| 字段 | 类型 | 说明 |
|---|---|---|
requestGuard | false | object | 设为 false 完全绕过守护层;设为对象则配置各能力 |
requestGuard.duplicate | boolean | object | 防重配置,true 启用默认,false 禁用 |
requestGuard.retry | boolean | object | 重试配置,true 启用默认,false 禁用 |
requestGuard.circuitBreaker | boolean | object | 熔断配置,true 启用默认,false 禁用 |
配置优先级
请求级配置(最高) > 规则匹配 > 全局默认(最低)完整示例
javascript
// ============ 场景 1:为单个请求开启防重 ============
await axios.post('/api/order/submit', orderData, {
requestGuard: {
duplicate: {
strategy: 'block', // 使用阻断策略
message: '订单处理中,请稍候', // 自定义提示文案
keyGenerator(config) { // 以业务 ID 作为判重依据
return `order:${config.data.orderId}`;
}
}
}
});
// ============ 场景 2:为单个请求开启重试 ============
await axios.get('/api/config/list', {
requestGuard: {
retry: {
attempts: 5, // 最多尝试 5 次
delay: 300, // 初始延迟 300ms
backoff: 'exponential' // 指数退避:300, 600, 1200...
}
}
});
// ============ 场景 3:禁用单个能力 ============
await axios.post('/api/special', data, {
requestGuard: {
duplicate: false // 这个请求不需要防重
}
});
// ============ 场景 4:完全绕过守护层 ============
await axios.post('/api/internal', data, {
requestGuard: false // 彻底跳过所有治理能力,直接发请求
});TIP
请求级显式配置不受 excludeMethods 限制。只有规则匹配和全局默认受排除方法影响。
