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. Вам нужно будет иметь конкретные определения моделей или настроить собственный конвертер моделей для добавления полей времени выполнения в свои модели.

Другие вопросы по тегам