feat: 增加注解 includeIfNull:false,

This commit is contained in:
Max 2025-07-16 14:04:07 +08:00
parent d9e46be9dd
commit 77cf3a4a11
5 changed files with 102 additions and 7 deletions

View File

@ -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

View File

@ -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 {');
//

View File

@ -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 {');
//

67
run_swagger.bat Normal file
View File

@ -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

View File

@ -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
;;