在swagger 2.0规范中为DTO的通用哈希图建模

时间:2019-05-10 07:43:33

标签: swagger swagger-2.0 swagger-codegen swagger-editor

我正在使用swagger在go客户端中为现有REST API生成DTO。 请求正文DTO具有通用的哈希映射,例如:

class MyConfig {
   Map<String, Object> config;
}

可以说配置是2个可能的键,每个键的值都是不同的对象。

key1 = "_key1", and value1 = "type A"
key2 = "_key2", and value2 = "type B"

我使用了swagger检查器扩展,并为我的API生成了swagger规范(OAS 2.0)。 生成的yaml文件如下:

MyConfig:
    properties:
      _key1:
        $ref: '#/definitions/_A'
      _key2:
        $ref: '#/definitions/_B'

基本上,这对应于MyConfig类型的类,具有2个字段,分别为“ key1”和“ key2”。 我认为,如果我服务器端的DTO将来进行任何更改,例如在地图中支持另一个键和值,我认为这不会起作用。

这并没有真正映射到我的实际输入,即哈希图。

在我看来,我应该按如下所示进行建模:

MyConfig:
    properties:
      config:
        type: object
        additionalProperties:
           type: string
           $ref: {} -->(assuming {} represents a generic object)

是否有支持在swagger规范中提及泛型对象? 不确定哪种方法更好/更灵活。

谢谢!

0 个答案:

没有答案