我需要一种注释openapi 3规范的方法,以便swagger-codegen将注释添加到我的java类中,例如@JsonIgnoreProperties(ignoreUnknown = true)
有可能吗?
TIA!
答案 0 :(得分:1)
似乎您可以利用胡须模板。从代码生成jar文件中提取所需语言的小胡子文件,然后编辑所需的类模板文件。然后,使用-t pathToTemplates
标志生成客户端代码,如下所示:
java -jar swagger-codegen-cli-2.3.1.jar generate
-t C:\SwaggerTemplates
-i C:\Swagger.json
-l csharp
-o C:\Output
答案 1 :(得分:0)
是的,有可能。
以下是对我有用的步骤-
从github下载swagger-code-gen源代码或获取zip。我的版本是2.3.1,并且是从swagger-code-gen 2.3.1
对于Java,更新 AbstractJavaCodegen .java文件并在processOpts()方法中添加两行:
importMapping.put(“ JsonIgnoreProperties”,“ com.fasterxml.jackson.annotation.JsonIgnoreProperties”);
//如果导入了ApiModel,则导入JsonIgnoreProperties importMapping.put(“ io.swagger.annotations.ApiModel,” com.fasterxml.jackson.annotation.JsonIgnoreProperties“);
保存文件并进行mvn全新安装,以在目标目录中生成swagger-code-gen-cli-2.3.1
现在从上述cli jar(位于此路径中-“ swagger-codegen-2.3.1 \ modules \ swagger-codegen-cli \ target \ swagger”中提取“ pojo.mustache”和任何其他必需文件) -codegen-cli-2.3.1.jar \ Java \“)到目录(例如spring_template)
在“ pojo.mustache”文件的@ApiModel下面添加“ @JsonIgnoreProperties(ignoreUnknown = true)”行
现在在路径中使用内置的cli jar和spring_template执行命令: java -jar swagger-codegen-cli-2.3.1.jar生成--additional-properties apiPackage = com.xxx.xxx.api,modelPackage = com.xxx.xxx.model,delegatePattern = true,useTags = true,configPackage = com.xxx.xxx.configuration,basePackage = com.xxx.xxx -o app -l spring -i your_swagger_yaml_file.yaml -t spring_template
这应该使用@JsonIgnoreProperties(ignoreUnknown = true)并在该类中导入com.fasterxml.jackson.annotation.JsonIgnoreProperties来构建和生成pojo /模型类。