Max
|
111375b749
|
feat: 实现枚举配置文件映射和UNKNOWN枚举值
✨ 新功能
- 支持通过 generator_config.yaml 配置枚举键名映射
- 实现三级优先级:配置文件 > x-enum-varnames > 智能生成
- 自动为所有枚举添加 UNKNOWN 值(整数用-9999,字符串用'UNKNOWN')
- fromValue 方法改为返回 UNKNOWN 而不是抛异常,提供更好的容错性
🔧 核心修改
- lib/core/config_repository.dart: 添加 EnumKeyMapping 和 enumKeyMappings 解析
- lib/core/config.dart: 暴露枚举映射配置
- lib/pipeline/generate/impl/model/model_content_builders.dart: 实现三级优先级枚举生成和 UNKNOWN 值
- lib/core/models/api_schema.dart: 支持 x-enum-varnames 和 x-enum-descriptions 扩展字段
- lib/pipeline/generate/impl/retrofit_api/api_return_types.dart: 修复 BasePageResult 包裹逻辑
📚 文档更新
- 新增 ENUM_QUICK_REFERENCE.md: 快速参考指南
- 新增 ENUM_KEY_NAMES_USAGE.md: 详细使用指南
- 新增 ENUM_CONFIG_MAPPING_SUMMARY.md: 功能实现总结
- 新增 ENUM_KEY_NAMES_PROPOSAL.md: 技术提案
- 更新 README.md 和 CHANGELOG.md
- 更新 generator_config.template.yaml 添加配置示例
📦 示例文件
- example/swagger_enum_example.json: Swagger 扩展字段示例
- example/enum_config_mapping_example.yaml: 完整配置示例
✅ 测试验证
- test/pagination_wrapping_test.dart: BasePageResult 包裹测试
- 功能已通过实际生成测试验证
🎯 使用场景
1. 后端支持 OpenAPI 扩展 → 使用 x-enum-varnames
2. 后端不支持扩展 → 使用配置文件映射
3. 需要覆盖 Swagger → 使用配置文件映射
4. 快速原型开发 → 使用智能生成
|
2025-11-24 10:47:17 +08:00 |
Max
|
d6a31d5a24
|
feat: update
|
2025-11-23 14:11:16 +08:00 |
Max
|
dc4a7cc719
|
feat: fix warring 增加
|
2025-11-22 14:30:32 +08:00 |
Max
|
f2e48277ea
|
feat: update
|
2025-11-21 22:27:01 +08:00 |
Max
|
12ed10e221
|
feat: 增强代码生成器 - 模型分类、目录优化与多版本API支持
主要改进:
1. 响应模型 List 默认值
- 为响应模型的 List 类型添加 @JsonKey(defaultValue: [])
- 请求模型不添加默认值,避免影响后端接收
2. ModelUsageType 模型分类
- 新增 ModelUsageType 枚举(request/response/common/unknown)
- 通过解析 Swagger 文档的 paths 自动判定模型用途
- 更准确地区分请求参数和返回结果
3. api_models 目录结构优化
- enums/ - 枚举类型
- request/ - 请求模型
- result/ - 响应模型
- parameters/ - 查询参数类
- 每个子目录生成 index.dart 便于导入
4. 导入策略优化
- API 文件统一使用 import '../../api_models/index.dart'
- 利用 Dart tree-shaking,不影响应用大小
- 简化导入管理,提高可维护性
5. 多版本 API 支持
- 支持多个 Swagger 文档 URL(v1/v2/v3...)
- API 文件按版本分目录(api/v1/、api/v2/)
- V1 版本类名不加后缀(如 MobileManagerApi)
- V2+ 版本类名添加版本号后缀(如 MobileManagerApiV2)
- 每个版本目录生成 index.dart
- ApiClient 提供显式版本访问器
配置变更:
- SwaggerConfig.swaggerJsonUrls 支持多个 URL
|
2025-11-03 11:06:35 +08:00 |
Max
|
364aeddc4c
|
feat: 恢复丢失的重要文件
- 恢复 swagger.json (12,902 行)
- 恢复 lib/swagger_cli_new.dart (193 行)
- 恢复 tests/models_test.dart (1,589 行)
- 恢复 tests/schema_validator_test.dart (475 行)
这些文件在之前的 revert 操作中被误删除
|
2025-07-24 10:55:03 +08:00 |
Max
|
a12bf7e618
|
feat: 恢复代码
|
2025-07-24 10:44:25 +08:00 |
Max
|
547a6c7f16
|
Revert "feat: 优化项目升级为2.0 严格执行3.0 swagger 标准"
This reverts commit 0fc76544ff.
|
2025-07-24 10:42:22 +08:00 |
Max
|
0fc76544ff
|
feat: 优化项目升级为2.0 严格执行3.0 swagger 标准
|
2025-07-24 10:38:02 +08:00 |
Max
|
5c9d2c8d36
|
init
|
2025-07-13 07:01:51 +08:00 |