Я попытался ввести обнуляемые свойства в API, который был разработан с использованием спецификаций openapi 3. Идея состоит в том, чтобы всегда возвращать свойства клиенту, независимо от того, имеют ли они значения null или нет.
Файл YAML (сначала я пробовал без значения по умолчанию, с такими же результатами):
property:
type: integer
nullable: true
default: null
Генерировано Java код:
@JsonProperty("property")
private JsonNullable<Integer> property = JsonNullable.undefined();
Ответ от API:
"property": {
"present": true
}
Таким образом, результат всегда «присутствует: истина», независимо от того, является ли свойство нулевым или нет. Без обнуляемости это работает просто отлично, за исключением того, что нулевые значения удаляются из ответа, что нежелательно.
Любые идеи?
PS На самом деле это свойство не называется "свойством"
Редактировать: конфигурация:
<generateAliasAsModel>true</generateAliasAsModel>
<inputSpec>./api/interface1.yaml</inputSpec>
<generatorName>spring</generatorName>
<enablePostProcessFile>true</enablePostProcessFile>
<configOptions>
<sourceFolder>src/main/java</sourceFolder>
<library>spring-boot</library>
<java8>true</java8>
<interfaceOnly>true</interfaceOnly>
<useOptional>true</useOptional>
</configOptions>