2016-05-17 23 views
2

我需要定义一个地图。但我也想限制可能的键。如何在地图中定义键的枚举,Swagger

这是我试图做的。

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

是否可以使用枚举来定义键? (地图返回int字符串,对象,但这不是问题的一部分)

谢谢您的帮助。

回答

2

当您使用additionalPropertie时,您无法定义接受的密钥集。但是,如果我的理解是正确的,此HashMap作为JSON两个例子是:

JSON例子1:

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

JSON例子2:

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

此HashMap与定义的一组关键是基本上包含类型的对象可选的(即,非必需的)性质,因此可以像任何其他对象进行定义的对象:

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

注:这将是一个好主意,用$裁判避免定义对象的每个关键属性:

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