# API 参考文档 ## 📚 核心 API 类库 ### 🔧 解析器 (Parsers) #### PerformanceParser 高性能 OpenAPI 文档解析器,支持并行处理和性能监控。 ```dart import 'package:swagger_generator_flutter/swagger_generator_flutter.dart'; // 创建解析器 final parser = PerformanceParser( config: ParseConfig( enablePerformanceStats: true, // 启用性能统计 enableParallelParsing: true, // 启用并行解析 enableCaching: true, // 启用缓存 maxConcurrency: 4, // 最大并发数 enableMemoryOptimization: true, // 内存优化 ), ); // 解析文档 final jsonString = await File('swagger.json').readAsString(); final document = await parser.parseDocument(jsonString); // 获取性能统计 final stats = parser.lastStats; print('解析时间: ${stats?.totalTime.inMilliseconds}ms'); print('路径数量: ${stats?.pathCount}'); print('吞吐量: ${stats?.bytesPerSecond.toStringAsFixed(2)} bytes/s'); ``` **主要方法:** | 方法 | 描述 | 返回类型 | |------|------|----------| | `parseDocument(String jsonString)` | 解析 OpenAPI 文档 | `Future` | | `parseDocumentFromFile(String filePath)` | 从文件解析文档 | `Future` | | `validateAndParse(String jsonString)` | 验证并解析文档 | `Future` | **配置选项:** ```dart class ParseConfig { final bool enablePerformanceStats; // 启用性能统计 final bool enableParallelParsing; // 启用并行解析 final bool enableStreamParsing; // 启用流式解析 final bool enableCaching; // 启用缓存 final int maxConcurrency; // 最大并发数 final bool enableMemoryOptimization; // 内存优化 final Duration cacheTimeout; // 缓存超时时间 } ``` --- ### 🏭 生成器 (Generators) #### OptimizedRetrofitGenerator 优化的 Retrofit API 代码生成器,专为企业级项目设计。 ```dart import 'package:swagger_generator_flutter/swagger_generator_flutter.dart'; // 创建生成器 final generator = OptimizedRetrofitGenerator( className: 'ApiService', // API 服务类名 generateModularApis: true, // 生成模块化 API generateBaseResult: true, // 生成基础响应类型 generatePagination: true, // 生成分页支持 generateFileUpload: true, // 生成文件上传支持 baseResultType: 'BaseResult', // 基础响应类型名 pageResultType: 'BasePageResult', // 分页响应类型名 ); // 生成代码 final generatedCode = generator.generateFromDocument(document); // 保存到文件 await File('lib/api/api_service.dart').writeAsString(generatedCode); ``` **主要方法:** | 方法 | 描述 | 返回类型 | |------|------|----------| | `generateFromDocument(SwaggerDocument doc)` | 从文档生成代码 | `String` | | `generateModularApis(SwaggerDocument doc)` | 生成模块化 API | `Map` | | `generateModels(SwaggerDocument doc)` | 生成数据模型 | `Map` | | `generateUtils(SwaggerDocument doc)` | 生成工具类 | `String` | **配置选项:** ```dart class OptimizedRetrofitGenerator { final String className; // 生成的类名 final bool generateModularApis; // 是否生成模块化 API final bool generateBaseResult; // 是否生成基础响应类型 final bool generatePagination; // 是否生成分页支持 final bool generateFileUpload; // 是否生成文件上传支持 final String baseResultType; // 基础响应类型名 final String pageResultType; // 分页响应类型名 final List excludeTags; // 排除的标签 final Map typeMapping; // 类型映射 } ``` #### PerformanceGenerator 高性能代码生成器,支持并发生成和增量更新。 ```dart final generator = PerformanceGenerator( maxConcurrency: 4, // 最大并发数 enableCaching: true, // 启用缓存 enableIncremental: true, // 启用增量生成 enableParallel: true, // 启用并行生成 cacheStrategy: CacheStrategy.smart, // 缓存策略 ); // 并行生成多个文件 final results = await generator.generateParallel(document, [ GenerationTask.apis, GenerationTask.models, GenerationTask.utils, ]); ``` --- ### ✅ 验证器 (Validators) #### EnhancedValidator 增强型文档验证器,提供详细的错误报告和修复建议。 ```dart import 'package:swagger_generator_flutter/swagger_generator_flutter.dart'; // 创建验证器 final validator = EnhancedValidator( strictMode: false, // 严格模式 includeWarnings: true, // 包含警告 enableAutoFix: true, // 启用自动修复 customRules: [ // 自定义验证规则 RequiredFieldRule(), NamingConventionRule(), ], ); // 验证文档 final isValid = validator.validateDocument(document); // 获取错误报告 final errors = validator.errorReporter.getErrorsBySeverity(ErrorSeverity.error); final warnings = validator.errorReporter.getErrorsBySeverity(ErrorSeverity.warning); // 生成详细报告 final report = validator.errorReporter.generateReport(); print(report); ``` **错误级别:** ```dart enum ErrorSeverity { critical, // 严重错误,阻止生成 error, // 错误,可能影响生成质量 warning, // 警告,建议修复 info, // 信息,仅供参考 } ``` **内置验证规则:** | 规则 | 描述 | 级别 | |------|------|------| | `SchemaValidationRule` | Schema 定义验证 | Error | | `ReferenceValidationRule` | 引用完整性验证 | Critical | | `NamingConventionRule` | 命名规范验证 | Warning | | `TypeConsistencyRule` | 类型一致性验证 | Error | | `RequiredFieldRule` | 必填字段验证 | Warning | --- ### 🗄️ 缓存管理 (Cache) #### SmartCache 智能缓存管理器,支持多级缓存和自动清理。 ```dart import 'package:swagger_generator_flutter/swagger_generator_flutter.dart'; // 创建缓存 final cache = SmartCache( maxSize: 1000, // 最大缓存大小 strategy: CacheStrategy.smart, // 缓存策略 defaultTtl: Duration(hours: 1), // 默认过期时间 enablePersistence: true, // 启用持久化 ); // 使用缓存 cache.put('key', 'value', ttl: Duration(minutes: 30)); final value = cache.get('key'); // 获取统计信息 final stats = cache.getStats(); print('缓存命中率: ${(stats.hitRate * 100).toStringAsFixed(1)}%'); print('内存使用: ${stats.memoryUsage}'); ``` **缓存策略:** ```dart enum CacheStrategy { lru, // LRU (最近最少使用) lfu, // LFU (最少使用频率) fifo, // FIFO (先进先出) smart, // 智能策略 (结合多种算法) } ``` --- ### 🔧 工具类 (Utils) #### StringUtils 字符串处理工具类,提供命名转换和格式化功能。 ```dart import 'package:swagger_generator_flutter/swagger_generator_flutter.dart'; // 命名转换 final camelCase = StringUtils.toCamelCase('user_name'); // userName final pascalCase = StringUtils.toPascalCase('user_name'); // UserName final snakeCase = StringUtils.toSnakeCase('userName'); // user_name // 类型转换 final dartType = StringUtils.openApiTypeToDart('integer'); // int final nullableType = StringUtils.makeNullable('String'); // String? // 文档注释生成 final comment = StringUtils.generateDocComment( 'User login endpoint', parameters: ['username', 'password'], returns: 'LoginResult', ); ``` #### FileUtils 文件操作工具类,提供安全的文件读写功能。 ```dart import 'package:swagger_generator_flutter/swagger_generator_flutter.dart'; // 安全写入文件 await FileUtils.writeStringToFile( 'lib/api/generated_api.dart', generatedCode, createDirs: true, // 自动创建目录 backup: true, // 创建备份 ); // 批量写入文件 await FileUtils.writeMultipleFiles({ 'lib/api/user_api.dart': userApiCode, 'lib/api/order_api.dart': orderApiCode, 'lib/models/user.dart': userModelCode, }); // 清理生成的文件 await FileUtils.cleanGeneratedFiles('lib/api/generated/'); ``` --- ### 📊 性能监控 (Performance) #### PerformanceMonitor 性能监控器,提供详细的性能统计和分析。 ```dart import 'package:swagger_generator_flutter/swagger_generator_flutter.dart'; // 创建监控器 final monitor = PerformanceMonitor(); // 开始监控 monitor.startOperation('parse_document'); // ... 执行操作 monitor.endOperation('parse_document'); // 获取统计信息 final stats = monitor.getOperationStats('parse_document'); print('操作次数: ${stats.count}'); print('平均耗时: ${stats.averageTime.inMilliseconds}ms'); print('最大耗时: ${stats.maxTime.inMilliseconds}ms'); // 生成性能报告 final report = monitor.generateReport(); print(report); ``` --- ## 🔄 完整使用流程 ### 基本使用流程 ```dart import 'dart:io'; import 'package:swagger_generator_flutter/swagger_generator_flutter.dart'; Future generateApiCode() async { // 1. 创建解析器 final parser = PerformanceParser( config: ParseConfig( enablePerformanceStats: true, enableCaching: true, ), ); // 2. 创建验证器 final validator = EnhancedValidator( includeWarnings: true, ); // 3. 创建生成器 final generator = OptimizedRetrofitGenerator( className: 'ApiService', generateModularApis: true, generateBaseResult: true, ); try { // 4. 解析文档 final jsonString = await File('swagger.json').readAsString(); final document = await parser.parseDocument(jsonString); // 5. 验证文档 final isValid = validator.validateDocument(document); if (!isValid) { final report = validator.errorReporter.generateReport(); print('验证失败:\n$report'); return; } // 6. 生成代码 final generatedCode = generator.generateFromDocument(document); // 7. 保存文件 await File('lib/api/api_service.dart').writeAsString(generatedCode); print('✅ 代码生成完成!'); // 8. 显示性能统计 final stats = parser.lastStats; if (stats != null) { print('解析时间: ${stats.totalTime.inMilliseconds}ms'); print('生成的路径数: ${stats.pathCount}'); } } catch (e, stackTrace) { print('❌ 生成失败: $e'); print('堆栈跟踪: $stackTrace'); } } ``` ### 高级使用流程 (企业级) ```dart Future generateEnterpriseApiCode() async { // 1. 配置高性能解析器 final parser = PerformanceParser( config: ParseConfig( enablePerformanceStats: true, enableParallelParsing: true, enableCaching: true, maxConcurrency: 8, enableMemoryOptimization: true, ), ); // 2. 配置增强验证器 final validator = EnhancedValidator( strictMode: true, includeWarnings: true, enableAutoFix: true, customRules: [ RequiredFieldRule(), NamingConventionRule(), TypeConsistencyRule(), ], ); // 3. 配置性能生成器 final generator = PerformanceGenerator( maxConcurrency: 4, enableCaching: true, enableIncremental: true, enableParallel: true, ); // 4. 配置智能缓存 final cache = SmartCache( maxSize: 100, strategy: CacheStrategy.smart, defaultTtl: Duration(hours: 2), ); try { // 5. 解析和缓存文档 final cacheKey = 'swagger_document_v1'; var document = cache.get(cacheKey); if (document == null) { final jsonString = await File('swagger.json').readAsString(); document = await parser.parseDocument(jsonString); cache.put(cacheKey, document); } // 6. 验证文档 final isValid = validator.validateDocument(document); if (!isValid) { final errors = validator.errorReporter .getErrorsBySeverity(ErrorSeverity.critical); if (errors.isNotEmpty) { throw Exception('文档包含严重错误,无法继续生成'); } } // 7. 并行生成多个文件 final results = await generator.generateParallel(document, [ GenerationTask.apis, GenerationTask.models, GenerationTask.utils, GenerationTask.documentation, ]); // 8. 保存生成的文件 for (final entry in results.entries) { final filePath = 'lib/api/generated/${entry.key}.dart'; await FileUtils.writeStringToFile( filePath, entry.value, createDirs: true, backup: true, ); } print('✅ 企业级代码生成完成!'); // 9. 生成性能报告 final performanceReport = parser.generatePerformanceReport(); await File('reports/performance_report.md') .writeAsString(performanceReport); // 10. 生成验证报告 final validationReport = validator.errorReporter.generateReport(); await File('reports/validation_report.md') .writeAsString(validationReport); } catch (e, stackTrace) { print('❌ 企业级生成失败: $e'); print('堆栈跟踪: $stackTrace'); } } ``` --- ## 🔍 错误处理和调试 ### 常见错误类型 ```dart // 解析错误 try { final document = await parser.parseDocument(jsonString); } on SwaggerParseException catch (e) { print('解析错误: ${e.message}'); print('错误位置: ${e.location}'); print('修复建议: ${e.suggestion}'); } // 验证错误 try { final isValid = validator.validateDocument(document); } on ValidationException catch (e) { print('验证错误: ${e.message}'); print('错误字段: ${e.fieldPath}'); print('期望值: ${e.expectedValue}'); print('实际值: ${e.actualValue}'); } // 生成错误 try { final code = generator.generateFromDocument(document); } on CodeGenerationException catch (e) { print('生成错误: ${e.message}'); print('错误类型: ${e.errorType}'); print('相关对象: ${e.relatedObject}'); } ``` ### 调试工具 ```dart // 启用调试模式 final parser = PerformanceParser( config: ParseConfig( enableDebugMode: true, // 启用调试模式 enableVerboseLogging: true, // 详细日志 logLevel: LogLevel.debug, // 日志级别 ), ); // 性能分析 final profiler = PerformanceProfiler(); profiler.startProfiling(); // ... 执行操作 final profile = profiler.endProfiling(); print('性能分析: ${profile.summary}'); // 内存分析 final memoryAnalyzer = MemoryAnalyzer(); final usage = memoryAnalyzer.getCurrentUsage(); print('内存使用: ${usage.totalMemory}MB'); print('缓存占用: ${usage.cacheMemory}MB'); ``` --- **文档版本**: v2.0 **最后更新**: 2025-01-24 **维护者**: Max