首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openapi生成-初始化对象

openapi生成-初始化对象
EN

Stack Overflow用户
提问于 2019-02-14 14:14:09
回答 1查看 959关注 0票数 1

我使用openapi生成器-maven插件从我的yml文件中生成代码。

代码语言:javascript
复制
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>3.3.4</version>

当从yml生成对象时,生成的代码总是生成对象并用null初始化它们。

例如,

代码语言:javascript
复制
public class Foo   {
  @JsonProperty("bar")
  private Bar bar = null;
}

是用对象本身初始化对象的一种方法,如:

代码语言:javascript
复制
public class Foo   {
  @JsonProperty("bar")
  private Bar bar = new Bar();
}
EN

回答 1

Stack Overflow用户

发布于 2019-12-10 17:01:42

一些片段和链接,可以帮助你。

pom.xml中的插件配置

代码语言:javascript
复制
<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>4.2.2</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/docs/openapi/api.yml</inputSpec>
                <generatorName>java</generatorName>
                <templateDirectory>docs/openapi/template</templateDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

复制默认模板,例如从OpenAPI生成器的Java模块并将所有胡子文件放在项目中的某个目录中--检查插件配置(在我的例子中是docs/openapi/template)。

查找文件pojo.mustache,它是生成POJO文件的模板。

此时,您需要了解一些基本的胡子语法。找出片段:

代码语言:javascript
复制
[...]
{{^isContainer}}
  private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}};
{{/isContainer}}
[...]

改为你想要的任何东西,例如:

代码语言:javascript
复制
[...]
{{^isContainer}}
private {{{datatypeWithEnum}}} {{name}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{^defaultValue}}{{^isPrimitiveType}} = new {{datatypeWithEnum}}(){{/isPrimitiveType}}{{/defaultValue}};
{{/isContainer}}
[...]

此模板片段将为每个非原始数据类型生成new TypeYouWantToUse()部件。

请注意,这只是一个简单的例子,如何继续前进。有许多角落的情况,例如enum处理。

FUrther读数:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54692464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档