2010-11-16 6 views
6

जेएक्स-आरएस और जेएक्स-डब्ल्यूएस एक एपीआई बनाने के लिए बहुत अच्छे हैं। हालांकि, वे पिछली संगतता की चिंता को बिल्कुल संबोधित नहीं करते हैं।आप पिछड़ा संगत जेएक्स-आरएस और जेएक्स-डब्ल्यूएस एपीआई कैसे बनाते हैं?

एपीआई को नई क्षमताओं को पेश करते समय पुराने क्लाइंट को तोड़ने से बचने के लिए, आपको अनिवार्य रूप से स्वीकार करना होगा और जैसा आपने पहले किया था उतना सटीक इनपुट और आउटपुट प्रारूप प्रदान करना होगा; वहां मौजूद एक्सएमएल और जेएसओएन पार्सर्स में से एक फिट होने लगता है अगर उन्हें ऐसा क्षेत्र मिलता है जो किसी भी चीज़ को मैप नहीं करता है, या गलत प्रकार है।

जैक्सन और जीसन जैसे कुछ जेएसओएन पुस्तकालय, एक सुविधा प्रदान करते हैं जहां आप रनटाइम सेटिंग के आधार पर किसी दिए गए ऑब्जेक्ट के लिए एक अलग इनपुट/आउटपुट प्रतिनिधित्व निर्दिष्ट कर सकते हैं, जो कि कई लोगों के लिए संस्करण को संभालने के लिए उपयुक्त तरीका लगता है मामलों। इससे जोड़ा गया और हटाए गए फ़ील्ड को एनोटेट करके पिछड़ा संगतता प्रदान करना संभव हो जाता है ताकि वे केवल क्लाइंट द्वारा उपयोग में एपीआई के संस्करण के अनुसार दिखाई दे सकें।

न तो जेएक्सबी और न ही कोई अन्य एक्सएमएल डाटाबेसिंग लाइब्रेरी जो मैंने पाया है, इस अवधारणा के लिए सभ्य समर्थन है, जेएसओएन और एक्सएमएल दोनों के लिए एक ही एनोटेशन का पुन: उपयोग करने में सक्षम नहीं है। इसे JAXB-RI या EclipseLink Moxy में जोड़ना संभावित रूप से संभव है, लेकिन चुनौतीपूर्ण लगता है।

संस्करण के लिए अन्य दृष्टिकोण संस्करणों के संस्करण के रूप में प्रतीत होता है जो अक्सर बदलते हैं, अक्सर एपीआई प्रकाशित होने पर और नए संशोधित डीटीओ, सेवा और संसाधन वर्गों की प्रतियां नए पैकेज में बनाते समय एक नया पैकेज बनाकर ताकि सभी प्रकार की जानकारी बाध्यकारी और प्रेषण प्रणाली के लिए बनाई गई हो। यह दृष्टिकोण मेरे लिए अधिक श्रमिक लगता है।

मेरा प्रश्न है: आपने पिछली संगतता के लिए अपने जेवी एपीआई प्रदाताओं को कैसे डिज़ाइन किया है? क्या काम किया, क्या नहीं किया?

विषय पर केस स्टडीज या ब्लॉग पोस्ट के लिए लिंक बहुत सराहना की; मैंने कुछ गुगल किया है लेकिन इस बारे में ज्यादा चर्चा नहीं मिली है।

उत्तर

0

मैं EclipseLink MOXy के लिए तकनीकी नेतृत्व हूं, मुझे आपकी संस्करण आवश्यकताओं में बहुत दिलचस्पी है। तुम मुझे अपने ब्लॉग के माध्यम से पहुँच सकते हैं:

MOXY एक एक्सएमएल फ़ाइल के रूप में JAXB मेटाडाटा का प्रतिनिधित्व करने के लिए एक साधन प्रदान करता है। आप एक ही ऑब्जेक्ट मॉडल के लिए कई मैपिंग बनाने के लिए इस का लाभ उठाने कर सकते हैं:

+0

धन्यवाद ब्लेज। एक ही ऑब्जेक्ट्स के लिए कई मैपिंग फाइल बनाने के बारे में मुझे पता चला कि चीजों में से एक यह है कि कक्षाओं के कई सेट बनाने की तुलना में यह आवश्यक रूप से कम काम नहीं है - कॉपी, पेस्ट, ट्वीक। और, यह अन्य पुस्तकालयों (जैसे जैक्सन) द्वारा भी समर्थित नहीं है। –

संबंधित मुद्दे