✨ 新功能 - 支持通过 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. 快速原型开发 → 使用智能生成 |
||
|---|---|---|
| .. | ||
| impl | ||
| swagger_data_parser.dart | ||
| swagger_fetcher.dart | ||