जब मेरे पास JSON है तो ओड्टा की क्या आवश्यकता है?


23

मैं ओडता की बात को समझने की कोशिश कर रहा हूं और जब यह समझ में आएगा। अभी मैं कैसे काम करता हूं मैं ASP.NET और MVC / WebApi कंट्रोलर का उपयोग करके JSON में ऑब्जेक्ट्स को अनुक्रमित / डिस्क्रिअलाइज़ करता हूं और जावास्क्रिप्ट को इसके साथ कुछ करता हूं।

जो मैं बता सकता हूं कि ओडटा का लाभ URL से सीधे क्वेरी करने में सक्षम है ... लेकिन जब से मैं क्लाइंट और सर्वर कोड लिख रहा हूं, उसके लिए कोई आवश्यकता नहीं है।

क्या किसी ने जावास्क्रिप्ट में एक ओडया क्वेरी के परिणामों को पार्स किया होगा ??

हो सकता है कि ओडटा सभी ग्राहकों के लिए एक जेनेरिक एंडपॉइंट प्रदान करने के बारे में अधिक है जो कि JSON द्वारा प्रदान नहीं की जाने वाली क्वेरी से विस्तृत जानकारी प्राप्त करने के लिए है? इसलिए यदि मैं डेटा प्रदान करने वाला था तो मुझे लगता है कि ओडेटा किसके लिए है?

REST / JSON / ODATA के उद्देश्य और उपयोग को समझने में मेरी मदद करें।


2
चीजों को "आसान" बनाने के लिए आपको लिंक्ड डेटा , लिंक्ड डेटा प्लेटफ़ॉर्म , स्पार्कलाइन और डेटा कैटलॉग शब्दावली में रुचि हो सकती है । वे सभी अलग-अलग चीजें हैं जो विभिन्न उद्देश्यों के लिए काम करती हैं और जिन्हें JSON के साथ जोड़ा जा सकता है , जैसे SPARQL 1.1 क्वेरी परिणाम JSON फॉर्मेट , और निश्चित रूप से REST के साथ ।
7

जवाबों:


42

JSON केवल एक डेटा-इंटरचेंज फॉर्मेट है जो जावास्क्रिप्ट पर आधारित है।

REST एक वास्तुकला शैली है, जबकि OData डेटा बनाने और उपभोग करने के लिए डिज़ाइन किए गए REST का एक विशिष्ट कार्यान्वयन है, जो दो स्वरूपों, AtomPub और JSON का समर्थन करता है।

तो JSON के बीच सादे REST और OData के बीच का अंतर डेटा हेरफेर के लिए OData में विकल्प हैं। उदाहरण के लिए, यदि हम OData प्रोटोकॉल का उपयोग करके डेटा क्वेरी करते हैं, तो हम URI में नीचे दिए गए विकल्पों को निर्दिष्ट कर सकते हैं,

  • $ orderby
  • $ शीर्ष
  • $ छोड़
  • $ फिल्टर
  • $ प्रारूप
  • $ चयन

हम प्रक्षेपण कर सकते हैं, संसाधनों को जोड़ सकते हैं, आदि और ये सभी विकल्प बॉक्स से बाहर उपलब्ध हैं। अब कल्पना करें कि अगर हमें अपनी REST सेवा में ये सभी सुविधाएँ प्रदान करनी थीं, तो हमें करना होगा,

  • उन सभी को लागू करें
  • विभिन्न अभियानों के लिए हमारे स्वयं के सम्मेलन / कीवर्ड बनाएं

यह न केवल बहुत काम है, बल्कि विसंगतियों की ओर भी जाता है और हमारे डेटा उपभोक्ताओं के लिए एक सीखने की अवस्था बनाता है।


5

JSON या जावास्क्रिप्ट ऑब्जेक्ट नोटेशन केवल डेटा के लिए एक प्रारूप या मानक है। यह एक लॉगिन नाम या कुछ और जिसे REST सेवा द्वारा उपभोग किए जाने की आवश्यकता है जैसे कुछ प्रसारित करने के लिए प्रारूप पर सहमति है।

इस भाग को देखें: http://en.wikipedia.org/wiki/JSON

हालांकि मूल रूप से जावास्क्रिप्ट स्क्रिप्टिंग भाषा से व्युत्पन्न, JSON एक भाषा-स्वतंत्र डेटा प्रारूप है, और JSON डेटा को पार्स करने और उत्पन्न करने के लिए कोड आसानी से प्रोग्रामिंग भाषाओं की एक विशाल विविधता में उपलब्ध है।

यह किसी विशेष प्रोग्रामिंग भाषा का हिस्सा नहीं है, इसलिए विभिन्न प्रणालियां डेटा के आसपास आसानी से पारित कर सकती हैं, अगर उन्हें पता है कि वे JSON का उपयोग कर रहे हैं।

बाकी के लिए यह वेब सेवाओं के लिए उपयोग की जाने वाली वास्तुकला की एक शैली है।

इस भाग को देखें: http://en.wikipedia.org/wiki/Representational_state_transfer

इस बारे में सोचने का एक तरीका यह है, यदि आप एक वेब सेवा लिखना चाहते हैं, जो कई अलग-अलग कंप्यूटरों से बात कर सकते हैं .. और जानकारी का आदान-प्रदान कर सकते हैं। आप URL के माध्यम से डेटा स्वीकार करने के लिए अपनी वेब सेवा लिख ​​सकते हैं

 http://www.myservice.com/specialRESTService?name=punkouter

प्रतिक्रिया वापस एक JSON वस्तु हो सकती है जो आपके डेटा को इंगित करती है।

{
    "name": "punkouter",
    "status": "service downloaded your data",
}

मैंने कभी ओडटा के बारे में नहीं सुना था, इसलिए मैंने इसे देखा:

OData AtomPub प्रोटोकॉल और JSON पर बनाया गया है जहां Atom संरचना एक लिफाफा है जिसमें प्रत्येक ODD अनुरोध से लौटाया गया डेटा शामिल है। एक OData अनुरोध सभी अनुरोधों के लिए REST मॉडल का उपयोग करता है। प्रत्येक REST कमांड एक POST, GET, PUT, PATCH, या DELETE http अनुरोध (CRUD की मैपिंग) है जहाँ कमांड की बारीकियाँ url में हैं।

प्राप्त करें: संस्थाओं का एक संग्रह (एक फ़ीड दस्तावेज़ के रूप में) या एक इकाई (एक प्रविष्टि दस्तावेज़ के रूप में) प्राप्त करें।

पोस्ट: एक प्रविष्टि दस्तावेज़ से एक नई इकाई बनाएँ।

PUT: एक मौजूदा इकाई को एक प्रविष्टि दस्तावेज़ के साथ अपडेट करें।

PATCH: किसी मौजूदा इकाई को आंशिक प्रविष्टि दस्तावेज़ के साथ अपडेट करें।

DELETE: एक इकाई निकालें।

लगता है जैसे ओडटा एक वैनिला रेस्ट स्टाइल आर्किटेक्चर को बढ़ाने के लिए कुछ लिखा गया है .. लेकिन ऐसा लगता है कि यह आपको सी # या स्क्रैच से जो भी भाषा का उपयोग कर रहा है, उसे लिखने के बजाय आपको कुछ अतिरिक्त चीजें दे सकता है।

यदि आप काम करते हुए आपको ओडटा का उपयोग करने पर जोर दे रहे हैं, तो आप अभी भी JSON का उपयोग कर रहे हैं..लेकिन Microsoft et al द्वारा लिखित OData फ्रेमवर्क / मानक के भीतर।

किसी ने भी जावास्क्रिप्ट में एक OData (sic) क्वेरी के परिणामों को पार्स करेगा ??

हां, चूंकि (ऐसा लगता है) यह JSON का उपयोग कर रहा है। जेएस का उपयोग करना पूरी तरह से स्वाभाविक होगा।

हो सकता है कि ओडटा सभी ग्राहकों के लिए एक जेनेरिक एंडपॉइंट प्रदान करने के बारे में अधिक है जो कि JSON द्वारा प्रदान नहीं की जाने वाली क्वेरी से विस्तृत जानकारी प्राप्त करने के लिए है? इसलिए यदि मैं डेटा प्रदान करने वाला था तो मुझे लगता है कि ओडटा किसके लिए है?

Odata एक REST सेवा प्रदान कर रहा होगा .. लेकिन एक सादे "जेनेरिक" REST सेवा समापन बिंदु के शीर्ष पर कुछ अतिरिक्त मानक सेवाओं के साथ .. क्लाइंट परवाह नहीं करते कि आप OData का उपयोग कर रहे हैं, या अपनी स्वयं की C # सेवा को रोल कर रहे हैं .. जब तक कि प्रतिक्रिया के रूप में एक प्रारूप पर सहमत थे (JSON की तरह)। हालांकि, आपके काम के लिए शायद वे ओडटा का उपयोग करना चाहते हैं क्योंकि यह बहुत सारे 'आउट ऑफ द बॉक्स' फीचर्स प्रदान करता है।


काम की परवाह नहीं है .. मैं सिर्फ यह जानना चाहता था कि ओडता का epurpose किस लिए है..जॉन सिर्फ डेटा को दर्शाने का एक तरीका है .. और इसलिए ODATA है .. लेकिन .. मुझे लगता है कि मेरे पास जो सवाल है वह एक परिदृश्य है REST का उपयोग करना और JSON वापस करना पर्याप्त नहीं है .. और ODATA का उपयोग करना एक लाभ होगा?
पंकटर

नहीं, नहीं, ओडटा एक प्रतिष्ठित सेवा वास्तुकला है ... जो डेटा का प्रतिनिधित्व करने के लिए JSON का उपयोग करता है। आप ओडटा पुस्तकालयों / मानकों का उपयोग करके कुछ भी हासिल नहीं करेंगे .. ऐसा कुछ भी नहीं जो तकनीकी रूप से अपने आप से नहीं लिखा जा सकता है .. लेकिन ओडटा का उपयोग करने से आप समय बचा सकते हैं यदि आप इसके साथ चीजों का निर्माण कर रहे हैं .. जैसा कि खुद चीजों को लिखने के विपरीत है
एरिक

json? लेकिन यह मुझे ओडटा रिटर्न एक्सएमएल लगता है ?? या यह दोनों है? मैं उलझन में हूं।
पंकटर


आपके लिंक से "OData संसाधनों (कलेक्शन, एंट्री, लिंक्स, आदि) का प्रतिनिधित्व करने के लिए दो स्वरूपों का समर्थन करता है। यह उजागर करता है: XML- आधारित एटम प्रारूप और JSON प्रारूप।"
Eric

2

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


2

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

नुकसान: जबकि ओडटा अंतर्निहित डेटाबेस को उजागर करने में महान है, विनिर्देश में लेनदेन के लिए समर्थन शामिल नहीं है और उन अनुप्रयोगों में उपयोग नहीं किया जा सकता है जहां हम एक डीबी इंटरफेस के साथ-साथ लेनदेन इंटरफ़ेस के रूप में सेवा कर सकते हैं।

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