我使用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 回答
Swagger不支持
@JsonAnyGetter
和@JsonAnySetter
. 您必须具有具体的模型定义,或配置自定义模型转换器以向模型添加运行时字段 .