diff --git a/README.md b/README.md index 777db9c..82f72fe 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,38 @@ dart run test tests/ - 生成模型/接口命名不规范?请检查 swagger 字段命名和生成规则 - 枚举、泛型、嵌套对象支持?已支持主流用法,特殊场景请补充 issue +### 脚本命令说明 + +#### Linux/macOS (run_swagger.sh) +```bash +# 显示帮助 +./run_swagger.sh help + +# 只生成数据模型 +./run_swagger.sh models + +# 只生成API文档 +./run_swagger.sh docs + +# 只生成Retrofit API +./run_swagger.sh api +``` + +#### Windows (run_swagger.bat) +```cmd +# 显示帮助 +run_swagger.bat help + +# 只生成数据模型 +run_swagger.bat models + +# 只生成API文档 +run_swagger.bat docs + +# 只生成Retrofit API +run_swagger.bat api +``` + --- 更新日期:2025-07-13 diff --git a/lib/generators/model_code_generator.dart b/lib/generators/model_code_generator.dart index 67e8d87..47c545f 100644 --- a/lib/generators/model_code_generator.dart +++ b/lib/generators/model_code_generator.dart @@ -226,7 +226,7 @@ class ModelCodeGenerator extends ModelGenerator { buffer.writeln(StringUtils.generateComment(model.description)); } - buffer.writeln('@JsonSerializable(checked: true)'); + buffer.writeln('@JsonSerializable(checked: true, includeIfNull: false)'); buffer.writeln('class $className {'); // 生成属性 @@ -577,7 +577,7 @@ class ModelCodeGenerator extends ModelGenerator { buffer.writeln(StringUtils.generateComment(model.description)); } - buffer.writeln('@JsonSerializable(checked: true)'); + buffer.writeln('@JsonSerializable(checked: true, includeIfNull: false)'); buffer.writeln('class $className {'); // 生成属性 diff --git a/lib/generators/retrofit_api_generator.dart b/lib/generators/retrofit_api_generator.dart index a998f31..6f5834f 100644 --- a/lib/generators/retrofit_api_generator.dart +++ b/lib/generators/retrofit_api_generator.dart @@ -1525,7 +1525,7 @@ class RetrofitApiGenerator extends BaseGenerator { buffer.writeln(''); // 生成参数实体类 - buffer.writeln('@JsonSerializable(checked: true)'); + buffer.writeln('@JsonSerializable(checked: true, includeIfNull:false)'); buffer.writeln('class $className {'); // 生成属性 diff --git a/run_swagger.bat b/run_swagger.bat new file mode 100644 index 0000000..efcecc6 --- /dev/null +++ b/run_swagger.bat @@ -0,0 +1,67 @@ +@echo off + +REM 简化版 Swagger CLI 运行脚本 +REM 提供便捷的命令行界面 + +REM 颜色定义 (Windows不支持ANSI颜色,使用echo) +REM GREEN='\033[0;32m' +REM YELLOW='\033[1;33m' +REM CYAN='\033[0;36m' +REM NC='\033[0m' # No Color + +REM 脚本路径 +set SCRIPT_DIR=%~dp0 +set CLI_DART_FILE=%SCRIPT_DIR%bin\main.dart + +REM 显示帮助 +:show_help +if "%1"=="help" goto help_content +if "%1"=="--help" goto help_content +if "%1"=="" goto help_content +goto :eof + +:help_content +echo. +echo 🚀 Swagger CLI 工具 +echo. +echo 用法: %0 [命令] [选项] +echo. +echo 快速命令: +echo %0 all # 生成所有文件 +echo %0 models # 生成数据模型 +echo %0 docs # 生成API文档 +echo %0 api # 生成Retrofit API +echo. +echo 直接使用: +echo dart run bin\main.dart generate --help +echo. +goto :eof + +REM 主函数 +:main +if "%1"=="" goto show_help +if "%1"=="help" goto show_help +if "%1"=="--help" goto show_help + +if "%1"=="all" ( + dart run "%CLI_DART_FILE%" generate --models --api --split-by-tags + goto :eof +) + +if "%1"=="models" ( + dart run "%CLI_DART_FILE%" generate --models + goto :eof +) + +if "%1"=="docs" ( + dart run "%CLI_DART_FILE%" generate --docs + goto :eof +) + +if "%1"=="api" ( + dart run "%CLI_DART_FILE%" generate --api + goto :eof +) + +echo 未知命令: %1 +goto show_help \ No newline at end of file diff --git a/run_swagger.sh b/run_swagger.sh index 53f0f49..a22b842 100755 --- a/run_swagger.sh +++ b/run_swagger.sh @@ -22,7 +22,6 @@ show_help() { echo -e "${GREEN}快速命令:${NC}" echo -e " $0 all # 生成所有文件" echo -e " $0 models # 生成数据模型" - echo -e " $0 endpoints # 生成API端点" echo -e " $0 docs # 生成API文档" echo -e " $0 api # 生成Retrofit API" echo "" @@ -45,9 +44,6 @@ main() { models) dart run "$CLI_DART_FILE" generate --models ;; - endpoints) - dart run "$CLI_DART_FILE" generate --endpoints - ;; docs) dart run "$CLI_DART_FILE" generate --docs ;;