का नक्शा मुझे स्वैगर एपीआई के साथ दस्तावेज़ करने की आवश्यकता है जो इनपुट और आउटपुट, ऑब्जेक्ट्स के मानचित्र, स्ट्रिंग कुंजियों द्वारा अनुक्रमित दोनों के रूप में उपयोग करता है।स्वैगर: <स्ट्रिंग, ऑब्जेक्ट>
उदाहरण:
{
"a_property": {
"foo": {
"property_1": "a string 1",
"property_2": "a string 2"
},
"bar": {
"property_1": "a string 3",
"property_2": "a string 4"
}
}
}
"foo" और "बार" कोई भी स्ट्रिंग कुंजी हो सकता है, लेकिन वे कुंजियों का सेट के बीच में अद्वितीय होना चाहिए।
मुझे पता है कि, अकड़ कर चलने वाले, मैं वस्तुओं की एक सरणी परिभाषित कर सकते हैं, लेकिन जब से हम तो कुछ के रूप में होता है यह एक अलग एपीआई देता है:
{
"a_property": [
{
"key": "foo"
"property_1": "a string 1",
"property_2": "a string 2"
},
{
"key": "bar"
"property_1": "a string 3",
"property_2": "a string 4"
}
]
}
मैं 'Open API Specification' - 'Add support for Map data types #38' पेज पढ़ लिया है। जहां तक मैं समझता हूं, यह अतिरिक्त प्रॉपर्टीज का उपयोग करने की अनुशंसा करता है, लेकिन ऐसा लगता है कि मेरी आवश्यकता (या यह मैं उपयोग करने वाले स्वैगर यूआई 2.1.4 के साथ काम नहीं करता)। क्या मुझे कुछ याद आया?
अब तक मैं पाया है निम्नलिखित काम के आसपास (स्वैगर JSON में):
a_property: {
description: "This is a map that can contain several objects indexed by different keys.",
type: object,
properties: {
key: {
description: "map item",
type: "object",
properties: {
property_1: {
description: "first property",
type: string
},
property_2: {
description: "second property",
type: string
}
}
}
}
}
यह लगभग, काम करता है, लेकिन पाठक को समझने के लिए कि "कुंजी" कोई भी स्ट्रिंग हो सकता है और कई बार दोहराया जा सकता है।
क्या मुझे आवश्यकतानुसार हासिल करने का एक बेहतर तरीका है?
व्यक्तिगत रूप से मुझे समझने में कुछ समय लगा * क्यों * 'अतिरिक्त प्रॉपर्टीज सही जवाब है: http://stackoverflow.com/a/41240118/110488 –