पर मॉडल-स्कीमा कैप्चर तत्व अतिरिक्त बनाएं, मैं एक आरईएसटी एपीआई के लिए एडाप्टर कर रहा हूं। मैंने पोस्ट और पुट विधि के शरीर के लिए मॉडल स्कीमा का उपयोग किया है। एडाप्टर पर @RequestBody Model1 requestBody
।एक सरणी क्षेत्र अनुरोध
अब, मुझे body
फ़ील्ड के साथ सामना करना पड़ा जिसके लिए सरणी की आवश्यकता है।
स्वैगर यूआई शरीर इनपुट
समय 1) स्वैगर लोड होने पर, मॉडल द्वारा आरंभ किया गया:
{
"field1" : "",
"field2Optional" : "",
"fieldArray" : [
{ "field2a" : "input2a" }
]
}
समय 2) उपयोगकर्ता से संपादित:
{
"field1" : "input1",
"field2Optional" : "",
"fieldArray" : [
{ "field2" : "input2a" },
{ "field2" : "input2b-userAddition " }
]
}
Model1.groovy
@XmlElement
String field1 = ''
@XmlElement
String fieldOptional = ''
@XmlElement
ArrayList<Model2> fieldArray = new ArrayList<>(Arrays.asList(new Model2())).get(0)
}
Model2.groovy
@XmlElement
String field2 = ''
मैं Model1
कब्जा/तत्वों उपयोगकर्ता की तरह, { "field2" : "input2b-userAddition " }
fieldArray
को जोड़ा गया सहेजना चाहते हैं। वर्तमान कोड के साथ, मैं केवल सरणी get(0)
का पहला तत्व प्राप्त कर सकता हूं, मैं मॉडल 2 के कई उदाहरण नहीं बनाना चाहता जब तक उपयोगकर्ता ने ऐसा नहीं कहा।
मेरे मन में जो समाधान है, वह पूरे शरीर के अनुरोध को प्राप्त करने और मॉडल के वास्तविक उपयोगकर्ता इनपुट की तुलना करने के लिए मॉडल 1.groovy के अंदर @RequestBody Map requestBody
का उपयोग करना है। फिर मॉडल में नहीं मिले फ़ील्ड जोड़ें लेकिन वास्तविक उपयोगकर्ता इनपुट में पाए जाते हैं। मुझे आश्चर्य है कि ऐसा करने का एक बेहतर तरीका है?