swagger_generator_flutter/docs/API_REFERENCE.md

9.9 KiB

API 参考文档

本文档详细介绍了 Swagger Generator Flutter 的所有 API 接口和配置选项。

目录

核心类

SwaggerDocument

OpenAPI 文档的主要数据模型。

class SwaggerDocument {
  final String title;
  final String version;
  final String description;
  final List<ApiServer> servers;
  final Map<String, ApiPath> paths;
  final Map<String, ApiModel> models;
  final ApiComponents components;
  final List<ApiSecurityRequirement> security;
  
  SwaggerDocument({
    required this.title,
    required this.version,
    required this.description,
    required this.servers,
    required this.paths,
    required this.models,
    required this.components,
    required this.security,
  });
  
  factory SwaggerDocument.fromJson(Map<String, dynamic> json);
  Map<String, dynamic> toJson();
}

ApiPath

API 路径和操作的定义。

class ApiPath {
  final String path;
  final HttpMethod method;
  final String summary;
  final String description;
  final String operationId;
  final List<String> tags;
  final List<ApiParameter> parameters;
  final ApiRequestBody? requestBody;
  final Map<String, ApiResponse> responses;
  final List<ApiSecurityRequirement> security;
  
  ApiPath({
    required this.path,
    required this.method,
    required this.summary,
    required this.description,
    required this.operationId,
    required this.tags,
    required this.parameters,
    this.requestBody,
    required this.responses,
    required this.security,
  });
}

ApiModel

数据模型的定义。

class ApiModel {
  final String name;
  final String description;
  final Map<String, ApiProperty> properties;
  final List<String> required;
  
  ApiModel({
    required this.name,
    required this.description,
    required this.properties,
    required this.required,
  });
}

生成器

BaseGenerator

所有生成器的基类。

abstract class BaseGenerator {
  String get generatorType;
  String generate();
}

RetrofitApiGenerator

基础的 Retrofit API 生成器。

class RetrofitApiGenerator extends BaseGenerator {
  final String className;
  final bool splitByTags;
  final bool useRetrofit;
  final bool generateModels;
  
  RetrofitApiGenerator({
    this.className = 'ApiService',
    this.splitByTags = false,
    this.useRetrofit = true,
    this.generateModels = true,
  });
  
  @override
  String generateFromDocument(SwaggerDocument document);
}

方法

  • generateFromDocument(SwaggerDocument document): 从文档生成代码
  • generateSingleApiFile(): 生成单个 API 文件
  • generateMainApiFile(): 生成主 API 文件(分模块时)

OptimizedRetrofitGenerator

优化版的 Retrofit API 生成器。

class OptimizedRetrofitGenerator extends BaseGenerator {
  final String className;
  final bool generateModularApis;
  final bool generateBaseResult;
  final bool generatePagination;
  final bool generateFileUpload;
  final String baseResultType;
  final String pageResultType;
  
  OptimizedRetrofitGenerator({
    this.className = 'ApiService',
    this.generateModularApis = true,
    this.generateBaseResult = true,
    this.generatePagination = true,
    this.generateFileUpload = true,
    this.baseResultType = 'BaseResult',
    this.pageResultType = 'BasePageResult',
  });
}

特性

  • 模块化生成: 按 API 标签自动分组
  • 基础类型: 生成 BaseResult、BasePageResult 等
  • 文件上传: 支持 multipart/form-data
  • 工具类: 生成 ApiUtils 工具类

PerformanceGenerator

高性能代码生成器。

class PerformanceGenerator extends BaseGenerator {
  final int maxConcurrency;
  final bool enableCaching;
  final bool enableIncremental;
  final bool enableParallel;
  
  PerformanceGenerator({
    this.maxConcurrency = 4,
    this.enableCaching = true,
    this.enableIncremental = true,
    this.enableParallel = true,
  });
  
  Future<String> generateFromDocument(SwaggerDocument document);
  GenerationStats getStats();
  CacheStats getCacheStats();
  void clearCache();
}

方法

  • generateFromDocument(): 异步生成代码
  • getStats(): 获取生成性能统计
  • getCacheStats(): 获取缓存统计
  • clearCache(): 清除缓存

解析器

PerformanceParser

高性能 OpenAPI 解析器。

class PerformanceParser {
  final ParseConfig config;
  
  PerformanceParser({ParseConfig? config});
  
  Future<SwaggerDocument> parseDocument(String jsonString);
  ParsePerformanceStats? get lastStats;
  void clearCache();
  Map<String, dynamic> getCacheStats();
}

ParseConfig

解析器配置。

class ParseConfig {
  final bool enableParallelParsing;
  final bool enableStreamParsing;
  final bool enableIncrementalParsing;
  final bool enableCaching;
  final int maxConcurrency;
  final int streamBufferSize;
  final bool enablePerformanceStats;
  final bool enableMemoryOptimization;
  
  const ParseConfig({
    this.enableParallelParsing = true,
    this.enableStreamParsing = false,
    this.enableIncrementalParsing = false,
    this.enableCaching = true,
    this.maxConcurrency = 4,
    this.streamBufferSize = 8192,
    this.enablePerformanceStats = false,
    this.enableMemoryOptimization = true,
  });
}

验证器

EnhancedValidator

增强的文档验证器。

class EnhancedValidator {
  final bool strictMode;
  final bool includeWarnings;
  
  EnhancedValidator({
    this.strictMode = false,
    this.includeWarnings = true,
  });
  
  bool validateDocument(SwaggerDocument document);
  ErrorReporter get errorReporter;
}

ErrorReporter

错误报告器。

class ErrorReporter {
  List<DetailedError> get errors;
  bool get hasErrors;
  bool get hasCriticalErrors;
  
  void addError(DetailedError error);
  void reportError({
    required String id,
    required String title,
    required String description,
    required ErrorSeverity severity,
    required ErrorCategory category,
    required String jsonPath,
    // ... 其他参数
  });
  
  List<DetailedError> getErrorsBySeverity(ErrorSeverity severity);
  List<DetailedError> getErrorsByCategory(ErrorCategory category);
  Map<ErrorSeverity, int> getErrorStatistics();
  
  String generateReport({
    bool includeStatistics = true,
    bool groupByCategory = false,
    ErrorSeverity? minSeverity,
  });
  
  String generateJsonReport();
  void clear();
}

缓存系统

SmartCache

智能缓存管理器。

class SmartCache<T> {
  final int maxSize;
  final CacheStrategy strategy;
  final Duration defaultTtl;
  
  SmartCache({
    int maxSize = 1000,
    CacheStrategy strategy = CacheStrategy.smart,
    Duration defaultTtl = const Duration(hours: 1),
  });
  
  T? get(String key);
  void put(String key, T value, {Duration? ttl, String? etag});
  bool containsKey(String key);
  T? remove(String key);
  void clear();
  
  CacheStats getStats();
  List<String> getKeysNeedingRefresh();
  Future<void> refreshKeys(List<String> keys, Future<T> Function(String key) refreshFunction);
  Future<void> warmUp(Map<String, Future<T> Function()> warmUpFunctions);
}

CacheStrategy

缓存策略枚举。

enum CacheStrategy {
  lru,    // 最近最少使用
  lfu,    // 最近最常使用
  fifo,   // 先进先出
  ttl,    // 基于时间的过期
  smart,  // 智能策略
}

配置选项

生成器配置

选项 类型 默认值 描述
className String 'ApiService' 生成的主类名
splitByTags bool true 是否按标签分割 API
generateModularApis bool true 生成模块化 API
generateBaseResult bool true 生成基础响应类型
generatePagination bool true 生成分页支持
generateFileUpload bool true 生成文件上传支持
baseResultType String 'BaseResult' 基础响应类型名
pageResultType String 'BasePageResult' 分页响应类型名

解析器配置

选项 类型 默认值 描述
enableParallelParsing bool true 启用并行解析
enableStreamParsing bool false 启用流式解析
enableCaching bool true 启用缓存
maxConcurrency int 4 最大并发数
enablePerformanceStats bool false 启用性能统计

验证器配置

选项 类型 默认值 描述
strictMode bool false 严格模式
includeWarnings bool true 包含警告

错误类型

ErrorSeverity

enum ErrorSeverity {
  info,     // 信息
  warning,  // 警告
  error,    // 错误
  critical, // 严重错误
}

ErrorCategory

enum ErrorCategory {
  syntax,        // 语法错误
  schema,        // Schema 错误
  reference,     // 引用错误
  validation,    // 验证错误
  compatibility, // 兼容性问题
  performance,   // 性能问题
  security,      // 安全问题
  bestPractice,  // 最佳实践
}

性能统计

ParsePerformanceStats

解析性能统计。

class ParsePerformanceStats {
  final Duration totalTime;
  final Duration parseTime;
  final Duration validationTime;
  final Duration modelCreationTime;
  final int memoryUsage;
  final int documentSize;
  final int pathCount;
  final int schemaCount;
  
  double get pathsPerSecond;
  double get schemasPerSecond;
  double get bytesPerSecond;
}

GenerationStats

生成性能统计。

class GenerationStats {
  final int totalTasks;
  final int completedTasks;
  final int failedTasks;
  final Duration totalTime;
  final Duration averageTaskTime;
  final int linesGenerated;
  final int bytesGenerated;
  final double parallelEfficiency;
  
  double get successRate;
  double get linesPerSecond;
  double get bytesPerSecond;
}