我正在尝试从Java代码生成Swagger文档,我的一个嵌套模型属性是HashMap。生成的示例如下:
"additionalProp1": {
"customObject": {}
},
"additionalProp2": {
"customObject": {}
},
"additionalProp3": {
"customObject": {}
}
我需要的是:
"objectName": {
"customObject": {}
}
换句话说,我需要告诉他们additionalProp字符串应该是什么,最好不要重复三次。有没有办法使用Swagger Annotations?我宁愿不对一个完整的例子进行硬编码,因为CustomObject本身具有许多属性,并且仍在不断变化。是否有可能按照
的方式做点什么 @ApiModelProperty(example = "objectName:{package.CustomObject}")
(除了实际有效的东西)?
我尝试过以这种方式和其他方式玩@ApiModelProperty
,但到目前为止还没有成功。
@ApiModelProperty
public HashMap<String, CustomObject> getObjectMap(){
return objectMap;
}
我正在使用1.5.18 Swagger罐子。到目前为止,我只能找到使用直接yaml或json操作解决的类似问题。
答案 0 :(得分:0)
我确实有一个hacky解决方案,我按如下方式创建了一个虚拟类:
public class SwaggerObject {
public CustomObject getObjectName() {
return null;
}
}
并在主要代码中添加:
@ApiModelProperty(dataType="package.SwaggerObject")
public HashMap<String, CustomObject> getObjectMap(){
return objectMap;
}
生成
"objectName": {
"customObject": {}
}
然而,为它需要一个全新的课程似乎很愚蠢。它还将虚拟类添加到底部的模型中,这可能会造成混淆。