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}"
}
希望对您有所帮助。
我目前正在使用 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}"
}
希望对您有所帮助。