【问题标题】:Display Custom HashMap Key Using Swagger Annotations使用 Swagger 注解显示自定义 HashMap 键
【发布时间】:2018-05-30 14:50:51
【问题描述】:

我正在尝试从 Java 代码生成 Swagger 文档,而我的嵌套模型属性之一是 HashMap。生成的例子如下:

      "additionalProp1": {
        "customObject": {}
      },
      "additionalProp2": {
        "customObject": {}
      },
      "additionalProp3": {
        "customObject": {}
      }

我需要的是:

      "objectName": {
        "customObject": {}
      }

换句话说,我需要告诉他们additionalProp String 应该是什么,最好不要重复3 次。有没有办法使用 Swagger Annotations 来做到这一点?我不想硬编码一个完整的例子,因为 CustomObject 本身有许多属性并且仍在不断变化。是否有可能按照

的方式做一些事情

@ApiModelProperty(example = "objectName:{package.CustomObject}")

(除了实际有效的东西)?

我尝试过以这种方式和其他方式使用@ApiModelProperty,但到目前为止没有成功。

@ApiModelProperty
public HashMap<String, CustomObject> getObjectMap(){
    return objectMap;
}

我正在使用 1.5.18 Swagger 罐子。到目前为止,我只能找到使用直接 yaml 或 json 操作解决的类似问题。

【问题讨论】:

    标签: java annotations swagger swagger-2.0 openapi


    【解决方案1】:

    我确实有一个 hacky 解决方案,我创建了一个虚拟类,如下所示:

    public class SwaggerObject {
        public CustomObject getObjectName() {
            return null;
        }
    }
    

    并在主代码中添加:

    @ApiModelProperty(dataType="package.SwaggerObject")
    public HashMap<String, CustomObject> getObjectMap(){
        return objectMap;
    }
    

    生成

    "objectName": {
      "customObject": {}
    }
    

    然而,为它需要一个全新的类似乎很愚蠢。它还将虚拟类添加到底部的模型中,这可能会造成混淆。

    【讨论】:

      猜你喜欢
      • 2015-06-21
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2016-03-01
      • 1970-01-01
      相关资源
      最近更新 更多