swagger_generator_flutter/example/generator_config.yaml

208 lines
5.4 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
- url: "http://192.168.2.7:17288/swagger/v3/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"
# 启用 CancelToken 支持
cancel_token_support: true
# 数据模型配置
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<String, dynamic>"
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