OpenAPI Generator Spring模板未填充@Schema注解的defaultValue属性
OpenAPI Generator Spring引擎未填充@Schema的defaultValue属性问题
问题确认
这是OpenAPI Generator中Spring模板的已知遗漏行为:模板默认不会将OpenAPI Schema里的default字段值映射到@Schema注解的defaultValue属性上,尽管字段的初始化逻辑已经正确处理了默认值(比如示例中private BigDecimal x = new BigDecimal(2))。
无需自定义模板的解决办法
1. 升级OpenAPI Generator版本
从v6.0.0及以上的OpenAPI Generator版本开始,Spring模板已经修复了这个问题,会自动将Schema中的default值填充到@Schema注解的defaultValue参数中。如果你使用的是editor.swagger.io,可以尝试切换到最新版本的生成器(编辑器通常会同步更新生成器版本)。
2. 添加生成器配置参数
如果暂时无法升级版本,可以在生成服务桩时添加额外配置参数:
在editor.swagger.io的"Generate Server" -> "Spring"选项中,找到"Additional Properties"输入框,添加:
enableSchemaDefaultValue=true
这个参数会触发模板将Schema的default值写入@Schema的defaultValue属性。
验证效果
添加配置或升级后,生成的代码会符合预期:
/** * Get x * @return x **/ @Schema(example = "0", description = "", defaultValue="2") @Valid public BigDecimal getX() { return x; }
内容的提问来源于stack exchange,提问作者Manny
相关产品推荐
相关产品推荐

