使用openapi-generator-cli生成Dart-Dio客户端代码遇语法错误
解决OpenAPI Generator Dart-Dio生成器的语法错误与兼容性问题
问题概述
使用openapi-generator-cli 6.6.0的Dart-Dio生成器生成客户端代码时遇到以下问题:
token_info.dart第32行出现语法错误:const ._(TokenTypes.bearer)缺少标识符token_info.g.dart未生成,导致TokenInfoBuilder未定义- 生成的
pubspec.yaml中SDK版本范围为>=2.15.0 <3.0.0,与当前Dart 3.0.6不兼容
解决方案
1. 修复Dart SDK版本兼容性
编辑生成的pubspec.yaml,将SDK版本范围修改为兼容Dart 3.x:
environment: sdk: '>=2.15.0 <4.0.0'
2. 修复token_info.dart的语法错误
找到token_info.dart第32行的错误代码:
const ._(TokenTypes.bearer)
修正为类名开头的合法构造函数调用(替换为实际生成的类名,示例假设类名为TokenInfo):
const TokenInfo._(TokenTypes.bearer)
3. 重新运行build_runner生成缺失的.g.dart文件
在生成的client_api包目录下执行以下命令:
dart pub get dart run build_runner build --delete-conflicting-outputs
4. 升级OpenAPI Generator版本(可选)
openapi-generator-cli 6.6.0可能存在对Dart 3.x的兼容bug,升级到更高版本(如7.x+)可避免类似问题:
openapi-generator-cli version-manager set 7.6.0
验证方法
- 执行上述修复步骤后,再次运行build_runner,确认无语法错误
- 导入生成的客户端代码到Flutter项目中,验证API调用功能正常
内容的提问来源于stack exchange,提问作者medim
相关产品推荐
相关产品推荐

