如何在地图中定义键的枚举,Swagger

时间:2016-05-17 10:04:00

标签: dictionary enums swagger

我需要定义一张地图。但我也想限制可能的密钥。

这是我试图做的事情。

type: object
    description: Key Value Map with user data. Possible values for the keys ("KEY_1", "KEY_2", "KEY_3")
    additionalProperties:
      type: object

是否可以使用枚举来定义键? (map返回int String,Object。但这不是问题的一部分)

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

使用additionalPropertie时,无法定义已接受的密钥集。但是如果我的理解是正确的,那么这个散列映射的两个例子就是JSON:

JSON示例1:

{
  "KEY_1": { ... },
  "KEY_2": { ... },
  "KEY_3": { ... }
}

JSON示例2:

{
  "KEY_1": { ... },
  "KEY_3": { ... }
}

这个带有一组已定义键的hashmap基本上是一个包含object类型的可选(即非必需)属性的对象,因此可以像任何其他对象一样定义:

type: object
properties:
  KEY_1:
    type: object
  KEY_2:
    type: object
  KEY_3:
    type: object

nb:使用$ ref避免必须为每个KEY属性定义对象是个好主意:

type: object
properties:
  KEY_1:
    $ref: '#/definitions/TheObjectDefinition'
  KEY_2:
    $ref: '#/definitions/TheObjectDefinition'
  KEY_3:
    $ref: '#/definitions/TheObjectDefinition'