Swagger Custom Model
Я использую Swagger и Spring Boot, чтобы автоматически генерировать документы API для моих объектов. Однако я динамически добавляю поля в свой ответ json, используя @jsonAnyGetter @jsonAnySetter. Такие как
открытый класс SomeResponse { // Стандартная часть подобрана чванством public String field1; public String field2; // Динамическая часть не найдена Swagger private HashMap dynamicFields = new HashMap(); @JsonAnySetter public final void putDynamicField(String key, Object value){ dynamicFields.put(ключ, значение); } @JsonAnyGetter public final HashMap getDynamicFields(){ вернуть dynamicFields; } }
Производит:
{ "Field1":"" "Field2": "" }
NB. Когда появляются динамические поля, магия Джексона заставляет их появляться на одном уровне в field1/2:). Однако Swagger не поднимает их, потому что они появляются во время выполнения obvioulsy.
Может кто-нибудь сказать мне, как я могу обновить сгенерированное описание модели Swagger или схемы модели, чтобы добавить описание настраиваемых полей для своего собственного наименования? Что-то вроде:
{ "Field1":"" "Field2":"" "dynamicField1": {} "dynamicFieldN": {} }
1 ответ
@JsonAnyGetter
а также @JsonAnySetter
не поддерживаются Swagger. Вам нужно будет иметь конкретные определения моделей или настроить собственный конвертер моделей для добавления полей времени выполнения в свои модели.