如何在swagger codegen中生成构造函数?
2022-09-04 22:31:21
代码生成未生成任何构造函数。我指的是宠物店的swagger文件,使用了最新的swagger codegen jar文件。
但只生成了默认构造函数。
它不是基于其字段生成构造函数。
如何启用它?
代码生成未生成任何构造函数。我指的是宠物店的swagger文件,使用了最新的swagger codegen jar文件。
但只生成了默认构造函数。
它不是基于其字段生成构造函数。
如何启用它?
如果您确实需要一个带有参数的构造函数,则可以通过修改以 .moustache 结尾的模板文件来执行此操作。
我假设您将要编辑现有模板,并希望每个模型都有一个构造函数。
下面是模型模板文件中构造函数的简单示例:
public {{classname}}( {{#vars}} {{datatype}} {{baseName}}{{^-last}},{{/-last}} {{#-last}}){
construct code here
}{{/-last}}{{/vars}}
请注意,这应该在 {{#model}} {{/model}} 标记之间
有关小胡子模板的更多信息,请参阅
我首先要感谢@Viktor贝尔特的回答。虽然答案提供了方向,但它没有提供足够的解决方案。请注意对上述答案的更改和补充。
在构造函数签名中,更改是从 {{datatype}} 到 {{{datatypeWithEnum}}}。此更改将支持使用泛型的任何属性,例如 List。
第二种是包含参数对局部变量的赋值。
当这些更改直接或覆盖pojo.mustache时,结果是生成可用的构造函数。这适用于 swagger 和 openapi 生成器。
public {{classname}}( {{#vars}} {{{datatypeWithEnum}}} {{baseName}}{{^-last}},{{/-last}} {{#-last}}){
{{#vars}}
this.{{baseName}} = {{baseName}};
{{/vars}}
}{{/-last}}{{/vars}}