swagger_generator_flutter/CHANGELOG_CANCELTOKEN.md

42 lines
1.6 KiB
Markdown

# CancelToken 功能变更日志 / CancelToken Feature Changelog
## [3.3.0] - 2026-01-31
### 🎉 新特性 / New Features
#### CancelToken 支持
-**配置开关**:在 `generator_config.yaml` 中配置 `generation.api.cancel_token_support: true` 启用
-**自动添加参数**:启用后,所有 API 方法自动添加 `@CancelRequest() CancelToken? cancelToken` 参数
-**向后兼容**:默认关闭,不影响现有项目
### 📝 文档 / Documentation
- ✅ 新增 `CANCELTOKEN_USAGE_GUIDE.md` - 使用指南和最佳实践
- ✅ 更新 `generator_config.template.yaml` - 添加配置示例
### 🔧 技术细节 / Technical Details
**修改的文件:**
- `lib/core/config_repository.dart` - 添加 `cancelTokenSupport` 配置解析
- `lib/pipeline/generate/impl/retrofit_api/api_parameters.dart` - 在 `_generateParameters()` 中添加 CancelToken 参数生成逻辑
- `generator_config.template.yaml` - 添加配置项说明
**生成的参数格式:**
```dart
@CancelRequest() CancelToken? cancelToken
```
### 💡 使用场景 / Use Cases
1. **页面离开取消请求** - 避免内存泄漏和不必要的状态更新
2. **用户主动取消** - 如搜索框输入时取消之前的搜索请求
3. **超时控制** - 配合 Timer 实现自定义超时逻辑
4. **批量取消** - 一个 CancelToken 可用于多个请求
---
## 相关资源 / Related Resources
- [Dio CancelToken 文档](https://pub.dev/packages/dio#cancellation)
- [Retrofit CancelRequest 注解](https://pub.dev/packages/retrofit)
- [使用指南](./CANCELTOKEN_USAGE_GUIDE.md)