WADL का उपयोग करने का कारण क्या है?


81

RESTful का वर्णन करने के लिए हम कह सकते हैं कि हर संसाधन का अपना URI है। HTTP GET, POST, PUT और DELETE का उपयोग करके, हम इन संसाधनों पर काम कर सकते हैं। सभी संसाधन प्रतिनिधित्ववादी हैं। जो कोई भी हमारे संसाधनों का उपयोग करना चाहता है वह एक ब्राउज़र या REST क्लाइंट के माध्यम से कर सकता है।

यह एक प्रतिष्ठित वास्तुकला का मुख्य विचार है। यह वास्तुकला इंटरनेट पर सेवाओं की अनुमति देता है। तो इस आर्किटेक्चर को WADL की आवश्यकता क्यों है? WADL उस मानक HTTP की क्या पेशकश करता है? WADL को अस्तित्व की आवश्यकता क्यों है?


से विकिपीडिया : वेब अनुप्रयोग डिस्क्रिप्शन लैंग्वेज (WADL) एक मशीन पठनीय HTTP- आधारित वेब सेवाओं की एक्सएमएल वर्णन है।
रिकार्डो

जवाबों:


154

WADL का उद्देश्य एक अनुबंध को परिभाषित करना है । अनुबंध निर्दिष्ट करता है कि एक पार्टी दूसरे को कैसे बुला सकती है।

जब आप स्क्रैच से वेब एप्लिकेशन बनाते हैं, तो आपको अनुबंध और WADL की आवश्यकता नहीं होती है

जब आप अपने सिस्टम को अन्य सिस्टम के साथ एकीकृत करते हैं और आप उनकी विकास टीम के साथ स्पष्ट रूप से संवाद कर सकते हैं, तो आपको अनुबंध और WADL की आवश्यकता नहीं है (क्योंकि आप चीजों को स्पष्ट करने के लिए फोन कॉल कर सकते हैं)।

हालाँकि जब आप कई अन्य कंपनियों (या संघीय संस्थानों) द्वारा बनाए गए कई अन्य जटिल उद्यम प्रणालियों के साथ एक जटिल उद्यम प्रणाली को एकीकृत करते हैं, तो मुझे विश्वास है कि आप संचार अनुबंध को यथासंभव सख्ती से परिभाषित करना चाहते हैं। फिर आपको WADL या ओपन स्पेसिफिकेशन की जरूरत है। बुरी तरह से जरूरत है

कमजोर उद्यम पृष्ठभूमि वाले लोग पूरे आईटी को स्वतंत्र रूप से विकसित अलग वेब अनुप्रयोगों के संग्रह के रूप में देखते हैं। लेकिन उद्यम वास्तविकता कभी-कभी कठिन होती है। कभी-कभी आप उस एप्लिकेशन को भी कॉल या लिख ​​नहीं सकते हैं जो आपके द्वारा एकीकृत किए जाने वाले एप्लिकेशन को विकसित कर रहा है। कभी-कभी आप एक विरासत अनुप्रयोग के साथ संवाद करते हैं जिसे अब बनाए नहीं रखा जाता है - यह बस चलता है और आपको यह पता लगाने की आवश्यकता है कि इसके साथ ठीक से कैसे संवाद करें। ऐसी स्थितियों में आपको एक अनुबंध की आवश्यकता होती है क्योंकि यह आपके गधे को बचाता है

दरअसल क्लाइंट जेनरेशन कॉन्ट्रैक्ट डेफिनिशन की मामूली विशेषता है। यह सिर्फ एक खिलौना है। अनुबंध खराब संचारकों को एकीकरण नियमों को स्पष्ट रूप से संप्रेषित करने में सक्षम बनाता है। यह WADL या ओपन स्पेसिफिकेशन या जो भी हो उसका उपयोग करने का मुख्य कारण है।


7
--- "IT SAVES ASS" सबसे अच्छा हिस्सा था। क्या WADL फाइल से कोई PHP कोड जनरेटर उपलब्ध है?
जतिन धूत

यदि आपको किसी वेबएड में किसी wadl की आवश्यकता नहीं है। मूल्यों को पुनः प्राप्त करने के लिए अनुरोध भेजने के लिए आपको क्या करना होगा?
जेसी

आप उदाहरण के लिए क्लाइंट SDK प्रदान करने के लिए दूसरी टीम से पूछ सकते हैं।
हेनरिक कोनसेक

अपर्याप्त प्रलेखन के साथ वेब- / REST API (WA) का उपयोग और एकीकरण कैसे करें? आपने 1- औपचारिक WADL (समान WSDL) का लाभ Contract enforces bad communicators to communicate integration rules clearly.
सुनाया

37

WADL का उपयोग करने से तात्पर्य है कि आप वास्तव में केवल उन डेटा / दस्तावेजों को परिभाषित करने के लिए पर्याप्त रूप से अनुग्रहित हो सकते हैं जिन्हें आप आगे और पीछे से गुजर रहे हैं। कहें कि आप कुछ XML टुकड़े कर रहे हैं, वे वास्तव में एक परिभाषित स्कीमा का हिस्सा हो सकते हैं।

आप कोड बनाने के लिए DL का उपयोग करते हैं या नहीं, यह मेरे लिए बहुत महत्वपूर्ण नहीं है। क्या मायने रखता है, मेरे व्यक्तिपरक राय में, यह महत्वपूर्ण है कि व्यापार भागीदारों के बीच इंटरफेस पर एक औपचारिक समझौता होना महत्वपूर्ण है। यहां तक ​​कि अगर जो पारित किया गया है वह स्पष्ट है, यह पहचानने में मदद करता है कि किसी को पिछले इंटरफ़ेस को बदलने पर बाद में क्या ठीक करना है।

डेटा प्रारूप क्रिया के नाम के समान ही एक इंटरफ़ेस का एक हिस्सा है।


10
REST का उपयोग करने के लिए आवश्यक है कि आप उस डेटा / दस्तावेजों को परिभाषित करें जो आप आगे और पीछे से गुजर रहे हैं। WADL के साथ समस्या यह है कि यह एंड-पॉइंट्स को परिभाषित करने की भी कोशिश करता है जो एपीआई परिभाषा का हिस्सा नहीं होना चाहिए।
डारेल मिलर

4
डेरेल, मुझे एक भी वेब सेवा के बारे में नहीं पता है, जिसके लिए मैंने कभी एक ग्राहक लिखा है, जिसके पास एक भी समापन बिंदु नहीं था जिसे इसके साथ उपयोग किया गया था।
ब्रिल पप्पिन

30

डब्ल्यूएडीएल एसओएपी दुनिया से आने वाले लोगों से अपील करता है जहां डब्ल्यूएसडीएल के आधार पर क्लाइंट साइड कोड बनाने के लिए कोड जनरेटर का उपयोग करना आम है। मुझे नहीं लगता कि REST में तंत्र उपयोगी है क्योंकि यह क्लाइंट कोड बनाता है जो सर्वर एंडपॉइंट्स के लिए युग्मित है।

मेरा मानना ​​है कि यदि आप अपने मीडिया-प्रकारों को ठीक से परिभाषित करते हैं और उन मीडिया-प्रकारों के भीतर हाइपरमीडिया का उपयोग करते हैं, तो WADL होना आवश्यक नहीं है। उपलब्ध अंत-बिंदुओं का वर्णन मीडिया-प्रकार की परिभाषाओं के भीतर निहित है। और अगर आप अब खुद से कह रहे हैं, लेकिन एप्लिकेशन / xml में उपलब्ध हाइपरलिंक्स के बारे में कोई जानकारी नहीं है, तो मैं कहता हूं बिंगो। यही कारण है कि मुझे नहीं लगता कि आवेदन / xml और अनुप्रयोग / json उपयुक्त मीडिया-प्रकार हैं। मैं यह नहीं कह रहा कि XML या JSON का उपयोग न करें, बस सामान्य मीडिया प्रकार के नाम का उपयोग न करें।

WADL की अन्य अपील REST सेवाओं के दस्तावेजीकरण के उद्देश्य से है। दुर्भाग्य से, यह डेवलपर्स को गलत रास्ते पर ले जाता है क्योंकि WADL सर्वर-साइड एंड पॉइंट्स को दस्तावेज़ करने का प्रयास करता है। REST सेवाओं का दस्तावेज़ीकरण मुख्य रूप से मीडिया-प्रकारों पर केंद्रित होना चाहिए। एक क्लाइंट डेवलपर को रूट यूआरएल के अलावा किसी भी यूआरएल को जानने के बिना REST क्लाइंट लिखने में सक्षम होना चाहिए।


19
WADL उन लोगों से भी अपील करता है जिनके पास एक बॉस है जो कहता है कि आपके पास एक मानक प्रारूप में एक औपचारिक परिभाषा है। मैं यह नहीं कह रहा हूं कि ऐसा करने का सबसे अच्छा तरीका है, बस कुछ समय के लिए "एक संगठनात्मक बॉक्स की जांच करना" उपयोगी है, इसलिए बोलने के लिए। तथ्य यह है कि यह overkill है किसी के बॉस पर खो सकता है। हालाँकि, औपचारिक डिफ़ फ़ाइल होने से आप SOAP क्रैक पाइप पर वापस जाने से बच सकते हैं जो अन्य सभी शांत कॉर्पोरेट बच्चे चूस रहे हैं।
रोबोप्रोग

2
@Ropoprog अंत बिंदुओं के बजाय अपने मीडिया प्रकारों को दस्तावेज़ित करें। IANA रजिस्ट्री में बहुत सारे अच्छे उदाहरण हैं। इसके अलावा, सन क्लाउड एपीआई एक अच्छा उदाहरण है। आपको अपने बॉस को यह विश्वास दिलाना होगा कि समापन बिंदु का दस्तावेजीकरण करना भविष्य के लिए एक बुरा विचार है।
डारेल मिलर

1
यह उन डेवलपर्स के लिए भी आसान है, जिनके पास वास्तव में ऐसा करने के लिए अधिक है जो पूरे दिन क्लाइंट कोड लिखते हैं।
ब्रिल पप्पिन

1
@ कॉबिगेट स्कीमा सिंटैक्स नियमों का एक सेट है, वे कोई शब्दार्थ नहीं जोड़ते हैं। आपको कुछ अन्य तंत्र की आवश्यकता है जैसे कि मीडिया प्रकार या शब्दार्थ जोड़ने के लिए एक प्रोफ़ाइल।
डारेल मिलर

1
@ कॉबिगेट लोग नामांकित तत्वों और विशेषताओं के लिए शब्दार्थ को जोड़ते हैं, लेकिन ऐसा करने के लिए कोई मानकीकृत प्रक्रिया नहीं है। मीडिया प्रकारों की एक आधिकारिक रजिस्ट्री होती है जो शब्दार्थ को परिभाषित करने वाली विशिष्टताओं की ओर इशारा करती है। iana.org/assignments/media-types/application
डारेल मिलर

16

WADL आपको कोड, परीक्षण और प्रलेखन उत्पन्न करने की अनुमति देता है। वास्तव में WADL का उपयोग करने वाले कुछ बहुत उपयोगी उपकरण हैं, आप यहां कुछ उदाहरण देख सकते हैं । फील्डिंग के शोध प्रबंध में वर्णित "शुद्ध" रीस्ट के साथ समस्या, हाइपरमेडिया का समर्थन करने वाले क्लाइंट लिख रही है (उदाहरण के लिए जावा स्विंग-आधारित क्लाइंट एप्लिकेशन लिखने की कल्पना करें)। WADL के साथ यह कार्य पूरी तरह से स्वचालित है, और यह मेरे विचार में बहुत बड़ा लाभ है। परीक्षण भी आसान हो जाता है।


16

इससे पहले कि मैं अपना स्पष्टीकरण दूं, मैं यह कहूंगा कि अधिकांश शुद्ध आरएएस चरमपंथी इसे पृथ्वी के छोर तक ले जाएंगे। मैं उनके साथ सहमत नहीं हूँ, क्योंकि मैं कुछ किया जाना चाहिए, लेकिन अभी तो आप जानते हैं।

WADL एक वेब सेवा एपीआई का विवरण है, थोड़ा सा WSDL SOAP प्रकार की वेब सेवाओं के लिए है, जिसे Restful इंटरफेस (कुछ WSDL खराब है) के साथ धुन में अधिक बनाया गया है।

यह मेरे अनुभव में प्राथमिक उपयोग है कि आप क्लाइंट कोड उत्पन्न करने की अनुमति दे सकते हैं जो सेवा को कॉल कर सकता है (यदि यह बहुत बड़ा एपीआई है, जो सचमुच काम के घंटे बचाता है)। यह REST-like इंटरफ़ेस का दस्तावेजीकरण करने के उद्देश्य से भी कार्य करता है।


3
यकीन है, यह एक अच्छा जवाब है। प्रतिरोध कट्टर SOAP लोगों से प्रतीत होता है, जो REST को बिल्कुल नहीं चाहते हैं, और कुछ कट्टर REST काउबॉय, जो कोई अतिरिक्त मेकअप नहीं चाहते हैं। एक औपचारिक उद्यम होने के लिए एक "उद्यम" में एक अच्छा अंजीर का पत्ता होता है, भले ही यह स्टार्ट अप में छोटे एपीआई के लिए समय की बर्बादी हो।
रोबोप्रोग

1
मेरे अनुभव में, WADL जैसी किसी चीज के तीन मुख्य कारण हैं: - बहुत सारे अच्छे डेवलपर्स REST को नहीं जानते हैं। - जब आपकी घड़ी में, डॉक्यूमेंट या एपीआई होने से चीजें बहुत बढ़ जाती हैं। - आप कभी भी यह नहीं मान सकते हैं कि जिस तरह से आप करेंगे उसी तरह किसी और ने भी कॉल को लागू किया है। REST इंजीलवादी भी सहमत नहीं हो सकते हैं :) मैंने उन मामलों में भी भाग लिया है, जहां कोई वातावरण DELETE या PUT कॉल को निष्पादित करने की अनुमति नहीं देगा, इसलिए आपको एक REST जैसा इंटरफ़ेस मिलता है जो केवल GET और PUT कॉल का उपयोग करता है ... तब प्रलेखन महत्वपूर्ण हो जाता है।
ब्रिल पप्पिन

मुझे यकीन है कि आपको GET और POST का मतलब था , जैसा कि FUT PUT और DELETE में फंकी POST विकल्पों के साथ होता है। काश ...
रोबोप्रोग

7

मुझे ऐसा लगता है, लेकिन Wadl बाकी के अंदर उदाहरण के लिए youtube.com/watch?v=cDdfVMro99s का उपयोग कर सकता है । ऐसा लगता है कि wadl सर्वर के फ़ंक्शन का उपयोग करने के लिए ग्राहकों का समर्थन करता है। और क्लाइंट को बस पैरामीटर और फ़ंक्शन का नाम होना चाहिए।
इगुरमु

7
आपने मुझे जो बताया, वह RPC जैसा लगता है, REST नहीं।
aehlke

3

जब आप REST सेवाओं को उजागर करना चाहते हैं, तो सबसे अच्छा तरीका है WADL जेनरेट करना और उपभोक्ता के साथ साझा करना (SOAP आधारित वेब सेवाओं में WSDL के समान)। WADL का उपयोग सभी जगह पर सेवा का वर्णन करने के लिए किया जाता है।


0

WADL का उपयोग करना आवश्यक नहीं है। लेकिन, यदि आप जटिल मौजूदा एप्लिकेशन के साथ काम कर रहे हैं और आप EJB / SOAP सेवा कॉल को बदलकर REST सेवा कॉल को लागू करना चाहते हैं, तो यह बहुत ही सुरक्षित और अच्छा अभ्यास है जिसे आप WADL का उपयोग करते हैं। WADL जनरेट क्लाइंट साइड जावा स्टब्स का उपयोग करके आप सेवा के साथ सिंक में होंगे।

आप WADL2java मावेन प्लगइन की मदद से WADL फ़ाइल का उपयोग करके क्लाइंट साइड जावा स्टब उत्पन्न कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.