モデル セクションで HashMap または Generic Object タイプを定義する方法はありますか? 製品を返す REST サービスがあり、それらの製品にはさまざまなオプションがあります。options プロパティは基本的に HashMap であり、id はオプション名で、その値はオプション値です。
24736 次
2 に答える
35
はい、可能です。
OpenAPI (fka. Swagger) 2.0 および 3.0 では、ハッシュマップは常に<string, something>
マップです。
- キーは常に文字列であり、定義する必要はありません。
- 値の型はあなたが望むものであり、で定義されてい
additionalProperties
ます。
<string, string>
このようなハッシュマップを記述したいとしましょう:
{
"key1": "value1",
"key2": "value2"
}
対応する OpenAPI 2.0 定義は次のようになります。
definitions:
StringStringMap:
type: object
additionalProperties:
type: string
OpenAPI 3.0 では、定義は次のようになります。
components:
schemas:
StringStringMap:
type: object
additionalProperties:
type: string
このような<string, object>
ハッシュマップ
{
"key1": {"someData": "data", "someOtherData": true},
"key2": {"someData": "data2", "someOtherData": false}
}
OpenAPI 2.0 では次のように定義されます。
definitions:
ComplexObject:
type: object
properties:
someData:
type: string
someOtherData:
type: boolean
StringObjectMap:
type: object
additionalProperties:
$ref: "#/definitions/ComplexObject"
および OpenAPI 3.0 では:
components:
schemas:
ComplexObject:
type: object
properties:
someData:
type: string
someOtherData:
type: boolean
StringObjectMap:
type: object
additionalProperties:
$ref: "#/definitions/ComplexObject"
これについては、私の OpenAPI (fka Swagger チュートリアル) のパート 4 で詳しく説明しました。
于 2016-04-19T07:30:14.277 に答える