昂首阔步的代码生成需要注释

时间:2018-06-21 13:19:23

标签: swagger-codegen

我需要一种注释openapi 3规范的方法,以便swagger-codegen将注释添加到我的java类中,例如@JsonIgnoreProperties(ignoreUnknown = true)

有可能吗?

TIA!

2 个答案:

答案 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)

是的,有可能。

以下是对我有用的步骤-

  1. 从github下载swagger-code-gen源代码或获取zip。我的版本是2.3.1,并且是从swagger-code-gen 2.3.1

  2. 下载的
  3. 对于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“);

enter image description here

  1. 保存文件并进行mvn全新安装,以在目标目录中生成swagger-code-gen-cli-2.3.1

  2. 现在从上述cli jar(位于此路径中-“ swagger-codegen-2.3.1 \ modules \ swagger-codegen-cli \ target \ swagger”中提取“ pojo.mustache”和任何其他必需文件) -codegen-cli-2.3.1.jar \ Java \“)到目录(例如spring_template)

  3. 在“ pojo.mustache”文件的@ApiModel下面添加“ @JsonIgnoreProperties(ignoreUnknown = true)”行 enter image description here

  4. 现在在路径中使用内置的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

  5. 这应该使用@JsonIgnoreProperties(ignoreUnknown = true)并在该类中导入com.fasterxml.jackson.annotation.JsonIgnoreProperties来构建和生成pojo /模型类。