You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenAPI Generator Java客户端未生成JsonNullable<?>问题及解决

问题:OpenAPI Generator 7.3.0生成Java客户端时nullable:true未生成JsonNullable字段

使用OpenAPI Generator Gradle插件7.3.0版本生成Java客户端时,遇到如下问题:
当Swagger YAML中定义属性带有nullable:true时(示例代码):

tag:
  type: string
  nullable: true

预期生成的Java字段为private JsonNullable<String> tag = JsonNullable.undefined();,但实际生成的是private String tag;,未按预期使用JsonNullable包装。

尝试过的无效方案

  • 移除nullable属性、搭配required属性调整,均未得到预期结果
  • 初始Gradle配置如下:
tasks.register('generateClient', GenerateTask) {
    generatorName.set("java")
    inputSpec.set(swaggerFile.toString())
    outputDir.set(swaggerOutputDir)
    configOptions.set([dateLibrary: "java8", useJakartaEe: "true"])
}
  • 切换为generatorName.set("spring")虽能生成JsonNullable,但该配置用于服务端代码生成,不符合客户端需求
  • 按照文档启用x-is-jackson-optional-nullable: true,问题仍未解决

解决办法

通过调试源码发现,将generator的library配置为webclient后,JsonNullable可正常生成,无需额外配置x-is-jackson-optional-nullable。修改后的Gradle配置如下:

tasks.register('generateClient', GenerateTask) {
    generatorName.set("java")
    library.set("webclient") // 仅配置webclient时能正确生成JsonNullable
    inputSpec.set(swaggerFile.toString())
    outputDir.set(swaggerOutputDir)
    configOptions.set([
            dateLibrary: "java8",
            useJakartaEe: "true",
            openApiNullable: "true" // 默认已启用
    ])
}

目前正在进一步测试该客户端的实际运行效果。

内容的提问来源于stack exchange,提问作者Luis Roberto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 07:12:41