6.0 KiB
6.0 KiB
✅ ApiPaths 生成功能移除总结
📋 移除目标
移除 ApiPaths 文件(api_paths.dart)的生成功能,简化代码生成器。
移除日期: 2025-11-05
状态: ✅ 已完成
✅ 已移除的内容
1. 命令选项
移除前:
const CommandOption(
name: 'endpoints',
shortName: 'e',
description: '生成API端点常量',
type: OptionType.flag,
),
移除后: ✅ 已删除
2. 生成逻辑
移除前:
// 生成端点代码
if (options.generateEndpoints) {
progress('正在生成API端点常量...');
final generator = EndpointCodeGenerator(document);
final code = generator.generate();
final filePath = '$fullOutputDir/api_paths.dart';
await FileUtils.writeFile(filePath, code);
success('API端点常量已保存到: $filePath');
generatedFiles++;
}
移除后: ✅ 已删除
3. 生成选项类
移除前:
class GenerateOptions {
final bool generateEndpoints;
final bool generateModels;
// ...
}
移除后:
class GenerateOptions {
final bool generateModels;
final bool generateDocs;
final bool generateApi;
// ...
}
4. 导入语句
移除前:
import '../generators/endpoint_code_generator.dart';
移除后: ✅ 已删除
5. 配置相关
移除前:
static const String defaultEndpointsFile = 'generated_api_paths.dart';
static const Map<String, dynamic> defaultGenerateOptions = {
'generateEndpoints': true,
// ...
};
移除后: ✅ 已删除
6. 类型验证器
移除前:
enum CodeType { model, endpoints, documentation }
case CodeType.endpoints:
// 验证逻辑
break;
移除后:
enum CodeType { model, documentation }
7. 未使用的方法
移除: _detectApiVersion() 方法(未使用)
📁 文件变更清单
修改的文件
-
✅
lib/commands/generate_command.dart- 移除
--endpoints选项 - 移除端点生成逻辑
- 移除
EndpointCodeGenerator导入 - 更新
GenerateOptions类 - 移除
_detectApiVersion()方法
- 移除
-
✅
lib/core/config.dart- 移除
defaultEndpointsFile常量 - 移除
generateEndpoints配置项
- 移除
-
✅
lib/utils/type_validator.dart- 移除
CodeType.endpoints枚举值 - 移除相关验证逻辑
- 移除
-
✅
USAGE_AS_DEV_DEPENDENCY.md- 移除
--endpoints选项说明 - 移除
api_paths.dart文件结构说明
- 移除
保留的文件(未修改)
lib/generators/endpoint_code_generator.dart- 生成器类文件保留(未使用)lib/utils/string_utils.dart-generateEndpointName()方法保留(可能被其他功能使用)
📊 移除效果
代码简化
| 指标 | 移除前 | 移除后 | 改善 |
|---|---|---|---|
| 命令选项 | 8 个 | 7 个 | ✅ 减少 1 个 |
| 生成选项字段 | 6 个 | 5 个 | ✅ 减少 1 个 |
| 生成逻辑块 | 4 个 | 3 个 | ✅ 减少 1 个 |
| 配置项 | 6 个 | 5 个 | ✅ 减少 1 个 |
生成的文件
移除前:
generator/
├── api_paths.dart ❌ 不再生成
├── api/
├── api_models/
└── api_documentation.md
移除后:
generator/
├── api/
├── api_models/
└── api_documentation.md
✅ 保留的功能
完全保留
-
✅ API 接口生成 (
--api)- Retrofit 风格 API 接口
- 版本化 API 支持
-
✅ 数据模型生成 (
--models)- 请求模型
- 响应模型
- 参数模型
- 枚举类型
-
✅ API 文档生成 (
--docs)- Markdown 格式文档
- 完整的 API 说明
📋 命令选项更新
移除前
dart run swagger_generator_flutter generate --endpoints # ❌ 已移除
dart run swagger_generator_flutter generate --models
dart run swagger_generator_flutter generate --api
dart run swagger_generator_flutter generate --docs
移除后
dart run swagger_generator_flutter generate --models
dart run swagger_generator_flutter generate --api
dart run swagger_generator_flutter generate --docs
dart run swagger_generator_flutter generate --all # 生成所有(不包含 endpoints)
🎯 使用建议
替代方案
如果需要 API 路径常量,可以考虑:
-
使用生成的 API 接口
- 生成的 Retrofit API 接口已经包含了路径信息
- 路径在
@GET/@POST/@PUT/@DELETE注解中
-
手动定义常量
class ApiPaths { static const String getUser = '/api/v1/users'; static const String createUser = '/api/v1/users'; } -
从生成的 API 接口提取
- 使用代码分析工具从生成的 API 文件中提取路径
✅ 测试验证
测试场景
- ✅ 生成所有文件 - 正常工作,不生成
api_paths.dart - ✅ 生成 API - 正常工作
- ✅ 生成模型 - 正常工作
- ✅ 生成文档 - 正常工作
- ✅ 命令帮助 - 不显示
--endpoints选项
测试命令
cd example/as_dev_dependency
dart run swagger_generator_flutter generate --help
dart run swagger_generator_flutter generate --all
结果: ✅ 正常工作,不再生成 api_paths.dart
📚 相关文件
已修改
- ✅
lib/commands/generate_command.dart - ✅
lib/core/config.dart - ✅
lib/utils/type_validator.dart - ✅
USAGE_AS_DEV_DEPENDENCY.md
未修改(保留)
lib/generators/endpoint_code_generator.dart- 生成器类(未使用,可后续删除)lib/utils/string_utils.dart-generateEndpointName()方法(可能被其他功能使用)
✨ 总结
移除完成:
- ✅ 移除了
--endpoints命令选项 - ✅ 移除了端点生成逻辑
- ✅ 移除了相关配置项
- ✅ 更新了文档
保留功能:
- ✅ API 接口生成
- ✅ 数据模型生成
- ✅ API 文档生成
状态: ✅ 移除完成,功能正常
现在代码生成器更加精简,不再生成 ApiPaths 文件!