2016-05-17 14 views
2

マップを定義する必要があります。しかし、私はまた、可能なキーを制限したい。マップでキーの列挙を定義する方法、スウィガー

これは私がやろうとしたものです。

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

キーを定義するために列挙型を使用できますか? (マップはint String、Objectを返しますが、これは問題の一部ではありません)

ありがとうございます。

答えて

2

additionalPropertieを使用する場合、受け入れ可能なキーのセットを定義することはできません。私の理解が正しければしかし、JSON、このハッシュマップの2例は次のようになります。

JSON例1:

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

JSON例2:

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

このハッシュマップの定義されたセットでkeyは、基本的にオブジェクト型の任意の(つまり必須ではない)プロパティを含むオブジェクトであるため、他のオブジェクトと同様に定義できます。

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

nb:KEYプロパティごとにオブジェクトを定義する必要がないように$ refを使用することをお勧めします。

type: object 
properties: 
    KEY_1: 
    $ref: '#/definitions/TheObjectDefinition' 
    KEY_2: 
    $ref: '#/definitions/TheObjectDefinition' 
    KEY_3: 
    $ref: '#/definitions/TheObjectDefinition' 
関連する問題