首页 文章

Swagger自定义模型

提问于
浏览
1

我使用swagger和spring boot为我的对象自动生成API文档 . 但是我正在使用@jsonAnyGetter @jsonAnySetter动态地将字段添加到我的json响应中 . 如

public class SomeResponse {

    //Standard part picked up by swagger
    public String field1;
    public String field2;

    //Dynamic Part not picked up by Swagger
    private HashMap dynamicFields = new HashMap();

    @JsonAnySetter
    public final void putDynamicField(String key, Object value){
        dynamicFields.put(key, value);
    }

    @JsonAnyGetter
    public final HashMap getDynamicFields(){
        return dynamicFields;
    }
}

生产环境 :

{
   "field1":""
   "field2":""
}

注意当动态字段出现时, Jackson 的魔力让它们出现在field1 / 2处于同一级别.HOwever Swagger没有选择它们,因为它们出现在运行时obvioulsy

任何人都可以告诉我如何更新生成的Swagger模型或模型架构描述以添加我自己命名的自定义字段描述?就像是:

{
   "field1":""
   "field2":""

   "dynamicField1": {}
   "dynamicFieldN": {}

}

1 回答

  • 1

    Swagger不支持 @JsonAnyGetter@JsonAnySetter . 您必须具有具体的模型定义,或配置自定义模型转换器以向模型添加运行时字段 .

相关问题