swagger codegen 将@JacksonXmlElementWrapper(useWrapping = false) 注解添加到单个字段

swagger codegen add @JacksonXmlElementWrapper(useWrapping = false) annotation to a single field

我目前正在使用 swagger codegen 使用 yml 来生成我的模型但是我有一个字段,即需要 @JacksonXmlElementWrapper(useWrapping = false)List<Object>。我可以在 POJO.mustache 中看到 @JacksonXmlElementWrapper,但在 model.mustache 中看不到。有谁知道要在 yaml 文件或其他任何地方添加什么,以便使用该注释生成该字段?谢谢。我在 gradle 中使用 spring-java 语言。我需要在构建期间生成它。所以最小的变化是首选。

根据他们 git 上的自述文件,Swagger Codegen 提到了执行此操作的方法:

https://github.com/swagger-api/swagger-codegen/blob/master/README.md

因为您使用的是 gradle:

我们可以使用自定义模板进行代码生成,如下所示:

// build.gradle
swaggerSources {
  inputFile = file('{name of your file}.yaml')
  xyz {
    language = 'spring'
    // template directory path
    templateDir = file('templates/{name of your custom directory}')
  }
}

templates/{name of your custom directory} 中,您可以存储您的自定义小胡子文件,对于您的情况,您所要做的就是从 git 下载所需的 spring 模板(例如这个 link 用于 pojo.mustache) 并在模板中添加所需的更改,以及项目和库文件夹。 运行 gradle 构建它应该生成。

然而,有一个更简单的解决方法,您可以只使用自己的 pojo class 并将其添加到现有的 config.json 中,并在您的 yaml 文件中删除该模型的早期条目(当然):

  "importMappings" : {
      "{replace with className}": "{replace with packageName}.{replace with className}"
  }

希望对您有所帮助。