我开发了一个根据我的产品需求定制的rest-api客户端(用java)。我想使用基于 yaml 文件的 swagger-codegen 模块使用我的rest api 客户端生成测试。
我已经扩展了
DefaultCodegenConfig
,甚至尝试实现 CodegenConfig
接口来构建我的自定义 jar。我已经自定义了 api.mustache
和 api_test.mustache
文件,并将它们传递到扩展 constructor
的 processOpts()
和 CustomCodeGen
方法中。但是,我想使用我在自定义DefaultCodegenConfig
中添加的自定义/新胡子模板变量。
例如如果参考标准api.mustache等
现在,我想引入一个新的模板变量,比如说
- {{classname}}
- {{#operation}}
- {{#contents}}
- {{#parameters}}
。现在我不清楚如何将这个新模板变量与实现集成。
从这里发布的Mustache-Template-Variables看来,swagger-codegen不允许添加新的模板变量,也许我们只能使用本页提到的变量。 那么,有什么方法可以让新的模板变量起作用吗?
uniqueItems
包含一个字段
DefaultCodegen
,它是可由 additionalProperties
模板引用的附加属性的映射。例如,在 Maven 项目中,您可以添加自定义模板变量 mustache
和 userAgent
,如下所示:userOs
并且在任何 swagger codegen Mustache 模板(例如 api.mustache)中,这些新变量都可以使用语法
<plugin>
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.35</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
...
<additionalProperties>userAgent=Postman,userOs=FreeBSD</additionalProperties>
...
和
{{userAgent}}
来使用