5.7 KiB
5.7 KiB
Changelog
All notable changes to this project will be documented in this file.
[3.2.0] - 2026-01-12
🎉 新特性
模型类名前缀支持
- ✅ 支持配置文件配置:在
generator_config.yaml中配置models.class_prefix,自动为生成的模型类添加前缀。 - ✅ 性能优化:为
ConfigRepository添加缓存机制,减少磁盘 I/O。
[3.1.0] - 2025-11-24
🎉 新特性
枚举键名映射支持
- ✅ 支持 OpenAPI 扩展字段:通过
x-enum-varnames和x-enum-descriptions生成有意义的枚举键名和注释 - ✅ 支持配置文件映射:在
generator_config.yaml中配置枚举键名映射,无需后端支持 - ✅ 三级优先级系统:配置文件映射 > Swagger 扩展字段 > 智能生成
- ✅ 完整类型支持:支持整数枚举和字符串枚举
- ✅ 部分映射支持:可以只配置部分枚举值,未配置的使用智能生成
配置文件增强
- ✅ 新增
generation.models.enum_key_mappings配置项 - ✅ 更新
generator_config.template.yaml,添加详细的枚举映射示例和说明 - ✅ 新增
EnumKeyMapping数据类,支持枚举键名和描述配置
📝 文档更新
- 新增 枚举快速参考 - 三种生成方式对比和快速上手
- 新增 枚举使用指南 - 详细的使用说明、后端实现示例和常见问题
- 新增 枚举实现总结 - 功能实现细节和测试验证
- 新增 枚举配置示例 - 完整的配置文件示例
- 更新 README.md,添加枚举键名映射功能说明
🔧 技术细节
- 修改
lib/core/config_repository.dart:添加enumKeyMappings解析逻辑 - 修改
lib/core/config.dart:暴露枚举映射配置 - 修改
lib/pipeline/generate/impl/model/model_content_builders.dart:实现三级优先级枚举生成 - 新增
EnumKeyMapping类:封装枚举键名和描述配置
💡 使用场景
- 后端支持 OpenAPI 扩展字段 → 使用
x-enum-varnames - 后端不支持扩展字段 → 使用配置文件映射
- 需要覆盖 Swagger 定义 → 使用配置文件映射
- 快速原型开发 → 使用智能生成(默认)
📚 相关资源
[3.0.0] - 2025-11-21
Breaking changes
- Removed OptimizedRetrofitGenerator and its public export. RetrofitApiGenerator is now the sole supported generator.
Migration
- Replace imports/usages of OptimizedRetrofitGenerator with RetrofitApiGenerator. Example:
- Before: import 'package:swagger_generator_flutter/generators/optimized_retrofit_generator.dart'; final generator = OptimizedRetrofitGenerator(className: 'ApiService');
- After: import 'package:swagger_generator_flutter/generators/retrofit_api_generator.dart'; final generator = RetrofitApiGenerator( className: 'ApiService', useRetrofit: true, useDio: true, splitByTags: true, versionedApi: true, );
Docs
- Updated README and docs to reference RetrofitApiGenerator only.
[2.1.1] - 2025-11-05
🎉 新特性
作为 dev_dependencies 支持
- ✅ 添加
executables配置,支持作为 dev_dependencies 在其他项目中使用 - ✅ 可通过
dart run swagger_generator_flutter generate命令执行 - ✅ 支持从使用者项目根目录读取
generator_config.yaml配置文件 - ✅ 新增完整的使用指南
USAGE_AS_DEV_DEPENDENCY.md - ✅ 提供配置文件模板
generator_config.template.yaml
📝 文档更新
- 更新 README.md,新增 "作为 dev_dependencies 使用" 章节
- 新增详细的集成指南,包含 CI/CD 示例
- 提供完整的工作流程说明
🔧 配置优化
- 更新
pubspec.yaml描述信息 - 添加可执行命令映射配置
[2.1.0] - 2025-11-03
🎉 主要新特性
多版本 API 支持
- 支持解析多个 Swagger 文档 URL(v1/v2/v3...)
- API 文件按版本自动分目录(api/v1/、api/v2/)
- V1 版本类名保持简洁(不加后缀,如
MobileManagerApi) - V2+ 版本类名添加版本号后缀(如
MobileManagerApiV2) - ApiClient 提供清晰的版本化访问器
模型智能分类
- 新增
ModelUsageType枚举(request/response/common/unknown) - 自动分析 Swagger paths 判定模型实际用途
- 精确区分请求参数和返回结果
目录结构优化
api_models/enums/- 枚举类型api_models/request/- 请求模型api_models/result/- 响应模型api_models/parameters/- 查询参数类- 每个子目录自动生成
index.dart便于导入
✨ 改进
默认值处理
- 响应模型的 List 类型自动添加
@JsonKey(defaultValue: []) - 请求模型不添加默认值,避免影响后端接收
- 更安全的 null 值处理
导入策略
- API 文件统一使用
import '../../api_models/index.dart' - 利用 Dart tree-shaking,不影响应用大小
- 简化导入管理,提高可维护性
🔧 配置变更
SwaggerConfig.swaggerJsonUrls现在支持多个 Swagger 文档 URL- 移除了单独的
swaggerJsonUrl配置项
📝 文档
- 新增
CANCELTOKEN_USAGE_GUIDE.md- CancelToken 使用指南 - 新增
CHANGELOG_CANCELTOKEN.md- CancelToken 功能变更日志
[2.0.1] - 2025-10-XX
改进
- 性能优化和 bug 修复
- 代码质量提升
[2.0.0] - 2025-09-XX
重大变更
- 项目重构
- 支持 Retrofit
- 优化代码生成逻辑