# Swagger 代码生成器配置文件 # 示例项目配置 # 基本配置 generator: name: "xy_swagger_generator" version: "1.0" author: "max" copyright: "Copyright (C) 2025 YuanXuan. All rights reserved." # 输入配置 input: # Swagger 文档源(支持多版本) # 注意:多个 URL 会按顺序合并,后面的文档会覆盖前面的同名模型和路径 # 因此建议将高版本(如 V2)配置在低版本(如 V1)之后,以确保高版本的模型覆盖低版本 # 例如:V1 在前,V2 在后,那么 V2 的模型会覆盖 V1 的同名模型 swagger_urls: # 完整形式:可以控制每个版本的启用状态 - url: "http://192.168.2.7:17288/swagger/v1/swagger.json" enabled: true - url: "http://192.168.2.7:17288/swagger/v2/swagger.json" enabled: true # 验证配置 validate_schema: true strict_mode: false # 输出配置 output: # 输出目录 base_dir: "./lib/src" api_dir: "./lib/src/api" models_dir: "./lib/src/api_models" # 文件命名 api_file_suffix: "_api.dart" model_file_suffix: ".dart" # 是否按 tag 分组 split_by_tags: true excluded_tags: # 通用 - "Login" - "MyInfo" # K8S - "HealthCheck" # H5 积分 - "Points" # H5意见反馈 - "FeedBackInfo" # 跳过的目录列表(这些目录下的文件将不会被生成) # 支持相对路径和绝对路径,支持目录名或完整路径 ignored_directories: # - "class_type_enum.dart" # - "sys_role_enum.dart" # - "sys_task_type_enums.dart" # - "teaching_level_enum.dart" # - "base_task_add_result.dart" # - "school_tree.dart" # - "sys_parameter.dart" # - "task_checklist_cloud_school_result.dart" # - "api/v1" # 跳过 v1 版本的 API # - "api_models/request" # 跳过请求模型目录 # - "./lib/generated/api/v2" # 跳过特定路径 # 跳过的文件名列表(这些文件将不会被生成) # 支持精确匹配、通配符匹配和模式匹配 ignored_files: # 精确匹配文件名 # - "user_api.dart" # 跳过名为 user_api.dart 的文件 # - "mobile_manager_api.dart" # 跳过指定文件 # 通配符匹配(支持前缀和后缀) # - "*_api.dart" # 跳过所有以 _api.dart 结尾的文件 # - "user*.dart" # 跳过所有以 user 开头的 .dart 文件 # - "*manager*" # 跳过所有包含 manager 的文件名 # 示例:跳过所有 v1 版本的 API 文件(如果文件名包含版本信息) # - "*_api_v1.dart" # - "*V1*.dart" # 代码生成配置 generation: # API 接口配置 api: enabled: true use_retrofit: true use_dio: true parser: "JsonSerializable" # 版本提取配置(多版本支持) version_extraction: # 版本提取正则表达式模式 pattern: "/api/v(\\d+)/" # 默认版本(当无法从路径提取版本时使用) default_version: "v1" # 基础类型配置 base_result_type: "BaseResult" base_page_result_type: "BasePageResult" base_result_import: "package:example_app/common/base_result.dart" base_page_result_import: "package:example_app/common/base_page_result.dart" # 方法命名 method_naming: "camelCase" # 数据模型配置 models: enabled: true use_json_serializable: true # JsonSerializable 配置 json_serializable: checked: true include_if_null: false explicit_to_json: true # 类命名 class_naming: "PascalCase" field_naming: "camelCase" # 构造函数配置 use_const_constructor: true required_for_non_nullable: true # 枚举键名映射配置(测试) enum_key_mappings: SysTaskTypeEnums: - value: 1 name: SPOT_CHECK description: 抽查 - value: 2 name: CULTURAL description: 文创建设 - value: 3 name: CLASS_CADRE_MEETING description: 班干部会议 - value: 4 name: CULTURAL_PROJECT description: 文创项目 - value: 5 name: TEACHER_AWARD description: 教工评优 - value: 6 name: CLASS_EVALUATION description: 班级评比 - value: 7 name: ORGANIZATION_LIFE description: 组织生活 # 类型映射配置 type_mapping: string: "String" integer: "int" number: "double" boolean: "bool" array: "List" object: "Map" date: "DateTime" date-time: "DateTime" binary: "Uint8List" # 导入管理配置 imports: on_demand: true auto_sort: true group_imports: true dart_imports: - "dart:convert" - "dart:typed_data" package_imports: - "package:dio/dio.dart" - "package:retrofit/retrofit.dart" - "package:json_annotation/json_annotation.dart" # 验证配置 validation: strict_mode: false checks: - "schema_exists" - "ref_resolution" - "type_consistency" on_error: "warn" on_warning: "log" # 优化配置 optimization: remove_unused_imports: true optimize_imports: true cache_schemas: true parallel_generation: false lazy_loading: true # 调试配置 debug: verbose: false debug_output: false performance_monitoring: false generation_stats: true