OpenAPI生成器如何知道生成的类是否是请求主体对象

时间:2020-03-27 08:21:38

标签: openapi-generator

当用Java生成模型类时,我在模板中进行了检查,以确定该属性是否是容器(列表/映射),然后执行空检查。为了进行防御性编程,如果此字段为null,我想返回一个空的collection / map。

所以模板看起来像这样:

  {{/vars}}
  public {{classname}}({{#vars}}@JsonProperty("{{baseName}}") {{#required}}@lombok.NonNull {{/required}}{{>nullableDataType}} {{name}}{{#hasMore}},
        {{/hasMore}}{{/vars}}) {
    {{#vars}}
    {{#isContainer}}
        if ({{name}} == null) {
            this.{{name}} = {{#isListContainer}}Collections.emptyList();{{/isListContainer}}{{#isMapContainer}}Collections.emptyMap();{{/isMapContainer}}
        }
    {{/isContainer}}
    {{^isContainer}}
        this.{{name}} = {{name}};
    {{/isContainer}}
    {{/vars}}
}
{{#vars}}

将被翻译成什么:

public MyRequestBodyObject(@JsonProperty("someField") String someField,
        @JsonProperty("dates") List<Period> dates) {
        this.someField = someField;
        if (dates == null) {
            this.dates = Collections.emptyList();
        }
}

这对于反序列化响应非常有效,但问题在于请求主体对象现在也具有相同的行为。

对于请求主体对象,我认为在空列表或空列表之间进行区分是有意义的,因为它可以具有不同的含义。

我知道isBodyParam变量,但这仅在端点中定义时才设置为true,而在它是$ref对象时则没有设置。

问题

有没有办法知道当前对象是否是有效载荷对象?

0 个答案:

没有答案