OpenAPI-генератор, как узнать, является ли сгенерированный класс объектом тела запроса - PullRequest
0 голосов
/ 27 марта 2020

Когда классы моделей генерируются в Java, в моем шаблоне есть проверка, что если свойство является контейнером (список / карта), то я выполняю проверку на ноль. Ради защитного программирования я хотел бы вернуть пустую коллекцию / карту, если это поле пустое.

Так шаблон выглядит так:

  {{/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 объект.

Вопрос

Есть ли способ узнать, является ли текущий объект объектом полезной нагрузки? или нет?

...