OData और REST वेब सेवाओं के बीच अंतर


196

कुछ वेब सेवाओं पर गौर करते हुए, मैंने इस "नई" तकनीक को चलाया, जिसे Microsoft OData कह रहा है । OData क्या है, के बारे में अक्सर पूछे जाने वाले प्रश्न के भीतर उनके विवरण के माध्यम से पढ़ते हुए, मुझे REST-ful वेब सेवाओं से OData को पहचानने में कठिन समय आ रहा है। क्या कोई मुझे मतभेदों को समझने में मदद कर सकता है?


2
एक निर्माता है, दूसरा उपभोक्ताओं के लिए प्रगाढ़ है।
11

जवाबों:


98

अद्यतन चेतावनी, यह उत्तर अब बहुत पुराना है कि OData V4 उपलब्ध है।


मैंने इस विषय पर कुछ समय पहले यहां एक पोस्ट लिखी थी ।

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

OData सेवा की क्वेरी क्षमता के लिए आपको URI की जानकारी, जो उपलब्ध नहीं है, या प्रतिक्रिया में लिंक के आधार पर बनाने की आवश्यकता होती है। यह वही है जिसे REST लोग आउट-ऑफ-द-बैंड जानकारी कहते हैं और क्लाइंट और सर्वर के बीच छिपे हुए युग्मन का परिचय देते हैं।

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

दुर्भाग्य से, Microsoft ने डेटा के इन प्रमुख टुकड़ों का वर्णन करने के लिए मीडिया प्रकार बनाने के लिए फिट नहीं देखा था, इसलिए किसी भी ओडटा क्लाइंट को उस सेवा के बारे में मान्यताओं का एक गुच्छा बनाना होगा जो वह बात कर रहा है और जो डेटा प्राप्त कर रहा है।


1
@felickz इसके बारे में क्षमा करें। मेरे पास DNS मुद्दे थे। यह अब काम करना चाहिए। या तब होगा जब आपका डीएनएस कैश समाप्त हो जाएगा।
डारेल मिलर

6
वास्तव में इस है पुराना हो चुका। ओडटा के V3 ने 'JSON लाइट' को जोड़ा है जो इन दोनों चिंताओं (जो वास्तव में सिर्फ एक हैं) को संबोधित करता है, यानी $ मेटाडेटा है कि आप कैसे प्रश्नों का निर्माण करना जानते हैं, इसलिए जो सब याद आ रहा था वह संसाधन अभ्यावेदन में $ मेटाडेटा की एक कड़ी है। यह जोड़ा गया है, इसलिए दोनों समस्याएं एक ही बार में गायब हो जाती हैं।
एलेक्स जेम्स

10
@DarrelMiller आपने उल्लेख किया कि आपका उत्तर अब पुराना है। विषय पर अपनी राय के साथ एक अद्यतन जोड़ने के लिए परवाह है? मुझे अभी भी OData 4 और REST के बीच अंतर जानने में दिलचस्पी होगी। बहुत धन्यवाद
Kurren

2
@Kurren यह मेरी टू-डू सूची में है, लेकिन दुर्भाग्य से यह एक लंबी सूची है।
डारेल मिलर

2
@DarrelMiller आशा है कि आपको कुछ समय बाद पोस्ट को अपडेट करने के लिए कुछ समय मिलेगा, क्योंकि यह ओडटा V4 के साथ तारीख तक बना सकता है।
LCJ

64

OData प्रोटोकॉल AtomPub प्रोटोकॉल के शीर्ष पर बनाया गया है। AtomPub प्रोटोकॉल REST API डिज़ाइन के सर्वश्रेष्ठ उदाहरणों में से एक है। तो, एक अर्थ में आप सही हैं - OData सिर्फ एक और REST API है और प्रत्येक OData कार्यान्वयन एक REST-ful वेब सेवा है।

अंतर यह है कि ओडटा एक विशिष्ट प्रोटोकॉल है; REST आर्किटेक्चर स्टाइल और डिज़ाइन पैटर्न है।


मैं इस पर गलत हो सकता हूं (बस ओडटा के बारे में सीखना शुरू कर दिया है), लेकिन [प्रोटोकॉल] [ odata.org/documentation] के संस्करण ३ के रूप में, यह एक JSON प्रारूप निर्दिष्ट करता है, जिसे आप वैकल्पिक रूप से उपयोग कर सकते हैं। क्या आप इस पर कुछ प्रकाश डाल सकते हैं?
जोहान्स रूडोल्फ

1
@JohannesRudolph, ईमानदारी से मुझे कोई पता नहीं है। मैंने पिछले दो वर्षों में ओडटा को नहीं देखा है। लेकिन यह काफी संभावना है कि Microsoft ने JSON समर्थन जोड़ा होगा। हालांकि, ध्यान दें कि यह किसी भी तरह से यहां किसी भी प्रतिक्रिया को नहीं बदलता है। JSON बनाम XML, केवल REST संसाधनों की प्रस्तुति का विषय है।
फ्रैंकी पेनोव

1
आप अनुरोध में निर्दिष्ट कर सकते हैं कि आपके पास क्या प्रारूप होना चाहिए। XML और JSON दोनों को ज्यादातर कार्यान्वयनों द्वारा समर्थित होना चाहिए, जैसे कि आवेदन /
जोंस के

32

REST एक सामान्य डिजाइन तकनीक है जिसका उपयोग यह बताने के लिए किया जाता है कि वेब सेवा तक कैसे पहुँचा जा सकता है। REST का उपयोग करके आप डेटा प्राप्त करने के लिए http अनुरोध कर सकते हैं। यदि आप इसे अपने ब्राउज़र में आज़माते हैं, तो यह वैसा ही होगा जैसे किसी वेबसाइट पर जाने के बजाय एक वेब पेज पर लौटने के बजाय आपको एक्सएमएल वापस मिल जाएगा। कुछ सेवाएं JSON प्रारूप में डेटा भी लौटाएंगी जो जावास्क्रिप्ट के साथ उपयोग करना आसान है।

OData एक विशिष्ट तकनीक है जो REST के माध्यम से डेटा को उजागर करती है।

यदि आप इसे वास्तविक रूप से त्वरित करना चाहते हैं, तो इसके बारे में सोचें:

  • बाकी - डिजाइन पैटर्न
  • OData - प्रौद्योगिकी सक्षम करना

20

2012 में ओडटा ने मानकीकरण किया, इसलिए मैं यहाँ एक अद्यतन जोड़ूँगा।

पहली परिभाषाएँ:

REST - HTTP पर संदेश भेजने का एक तरीका है।

OData V4 - REST का एक विशिष्ट कार्यान्वयन है, वास्तव में संदेशों की सामग्री को विभिन्न स्वरूपों में परिभाषित करता है (वर्तमान में मुझे लगता है कि एटमपब और JSON है)। ODataV4 बाकी सिद्धांतों का पालन करता है।

उदाहरण के लिए, asp.net लोग अधिकतर JSON में ऑब्जेक्ट्स को अनुक्रमित / डिस्क्रिअलाइज़ करने के लिए WebApi कंट्रोलर का उपयोग करेंगे और जावास्क्रिप्ट को इसके साथ कुछ करना होगा। Odata की बात सीधे आउट-ऑफ-द-बॉक्स विकल्पों के साथ URL से क्वेरी करने में सक्षम हो रही है।


10

ओडटा से दस्तावेज़ से :

ओडटा प्रोटोकॉल रेस्टफुल वेब सेवाओं के माध्यम से डेटा के साथ बातचीत के लिए एक एप्लिकेशन-स्तरीय प्रोटोकॉल है।

...

OData प्रोटोकॉल अन्य REST- आधारित वेब सेवा दृष्टिकोणों से भिन्न है, जिसमें यह डेटा और डेटा मॉडल दोनों का वर्णन करने का एक समान तरीका प्रदान करता है।


4

OData (ओपन डेटा प्रोटोकॉल) एक OASIS मानक है जो Restful APIs के निर्माण और उपभोग के लिए सर्वोत्तम अभ्यास को परिभाषित करता है। OData अनुरोध और प्रतिक्रिया हेडर, स्टेटस कोड, HTTP तरीके, URL कन्वेंशन, मीडिया प्रकार, पेलोड प्रारूप और क्वेरी विकल्प आदि को परिभाषित करने के लिए दृष्टिकोणों के बारे में चिंता किए बिना RESTful APIs का निर्माण करते समय आपको अपने व्यावसायिक तर्क पर ध्यान केंद्रित करने में मदद करता है। पुन: प्रयोज्य प्रक्रियाओं के लिए परिवर्तन, परिभाषित कार्यों / कार्यों को ट्रैक करना और अतुल्यकालिक / बैच अनुरोधों को भेजना आदि इसके अलावा, ओडटा आपके RESTful API की किसी भी कस्टम जरूरतों को पूरा करने के लिए विस्तार की सुविधा प्रदान करता है।

OData RESTful API का उपभोग करना आसान है। ओडटा मेटाडेटा, एपीआई के डेटा मॉडल का एक मशीन-पठनीय विवरण, शक्तिशाली जेनेरिक क्लाइंट प्रॉक्सी और टूल के निर्माण को सक्षम करता है। उनमें से कुछ प्रोटोकॉल के बारे में कुछ भी जाने बिना भी आपको ओडटा के साथ बातचीत करने में मदद कर सकते हैं। निम्नलिखित 6 चरणों में विभिन्न प्रोग्रामिंग प्लेटफार्मों में ओडेटा खपत के 6 दिलचस्प परिदृश्य प्रदर्शित होते हैं। लेकिन अगर आप एक गैर-डेवलपर हैं और केवल ओडटा के साथ खेलना चाहते हैं, तो Xodata आपके लिए सबसे अच्छी शुरुआत है।

http://www.odata.org/ पर अधिक जानकारी के लिए


4

ODATA एक विशेष प्रकार का REST है जहाँ हम URL से समान रूप से डेटा क्वेरी कर सकते हैं ।


2

REST का मतलब RE प्रेजेंटेशनल S tate T ransfer है जो एक संसाधन आधारित वास्तु शैली है। संसाधन आधारित का अर्थ है कि डेटा और कार्यात्मकताओं को संसाधन माना जाता है।

ओडाटा एक वेब आधारित प्रोटोकॉल है जो रेस्टफुल वेब सेवाओं के निर्माण और उपभोग के लिए सर्वोत्तम प्रथाओं के एक सेट को परिभाषित करता है। OData RESTful वेब सेवाओं को बनाने का एक तरीका है, इस प्रकार REST का कार्यान्वयन।

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