वेब एपीआई HTTP प्रोटोकॉल का अधिक मूल रूप से लाभ उठाता है। ओडाटा एक ओपन स्टैंडर्ड है जो बहुत सारे बड़े खिलाड़ियों द्वारा अपनाया जाता है। मैं केवल अपने अनुभव से ही ओडता के आसपास रहने के बारे में बात कर सकता हूं, और हाल ही में वेब एपीआई की खोज कर रहा हूं और कुछ शोध कर रहा हूं।
ओडटा शांत है क्योंकि यह एक वास्तविक मानक है। आप आसानी से एक डेटाबेस बना सकते हैं और इसे HTTP पर उजागर कर सकते हैं। इसका मतलब है कि आप किसी भी कॉन्फ़िगरेशन के बिना अपनी तालिका संरचना को पार कर सकते हैं (मैं कहता हूं कि शिथिल)। आप URL के माध्यम से क्वेरी भी चला सकते हैं जिसमें कुछ हल्का LINQ शामिल हो सकते हैं:
/products/orders/[put some linq-ish query here]
यह यकीनन अच्छा या बुरा है। प्रमाणीकरण मानक है और इसे बनाया गया है।
वेब एपीआई, मेरे दृष्टिकोण से अधिक दिलचस्प है। यह HTTP कार्यक्षमता (त्रुटि संदेश, एट अल।) का उपयोग करता है और असली रीस्टफुल अनुरोधों के लिए थोड़ा और "देशी" है। मैं वास्तव में इसके साथ बहुत अधिक नहीं खेला है .. लेकिन मैंने चारों ओर पढ़ा है और "सुना" की तरह है कि एमवीसी और वेब एपीआई किसी दिन "विवाहित" हो सकता है, फिर से, शायद अच्छा बुरा ...
जब मैं OData के साथ खेल रहा था, तो मैंने एक Stored Proc बनाया, इसे इकाई की सतह में मैप किया, एक मजबूत रिटर्न प्रकार कॉन्फ़िगर किया और फिर इसे URL अनुरोध और BANG तक झुका दिया, मेरा RESTful अनुरोध मेरे टाइप किए गए परिणाम खरीद के लिए मैप किया गया। यह काफी सीधा था, और मैं ठीक वही पाने में सक्षम था जो मुझे चाहिए था।
निष्कर्ष में
मुझे WCF API के साथ बहुत अधिक विस्तार से खेलने का मौका नहीं मिला है, लेकिन मैं कहूंगा कि यह क्लाइंट के विकास के लिए रास्ता है क्योंकि यह REST के लिए एक शुद्ध दृष्टिकोण के अधिक है। यदि आप कम या ज्यादा "स्ट्रेट" बैक और आगे कॉल करने जा रहे हैं और "मॉडल देखें" को पुनः प्राप्त कर रहे हैं, तो यह अधिक देशी इंटरैक्शन प्रदान करेगा।
दूसरी ओर। यदि आप क्लाइंट इंटरैक्शन के आधार पर डेटा पर जटिल (ईश) प्रश्न बना रहे हैं और आप क्वेरी लॉजिक को "बिल्ड" करना चाहते हैं और इसे एक पैरामीटर के रूप में पास करना चाहते हैं, तो ओडाटा काम कर सकता है।
जिस तरह से मैं इसे देखता हूं, अगर मुझे अपने डेटा को एक संरचनात्मक प्रारूप (मतलब तालिका / संबंध संरचना) में उजागर करने की आवश्यकता है और फिर इसे सीधे एक ग्राहक बनाते हैं, तो ओडटा सबसे अच्छा काम करेगा। यह "दूसरों" को डेटा तक पहुंचने की अनुमति देने के लिए भी अच्छा है (उचित स्थिति आदि के साथ)) यही कारण है कि यह ओडटा प्रोटोकॉल का पालन करता है
यदि आप RESTful अनुरोध चाहते हैं, जहां आप URL (/ उत्पादों / ऑर्डर / 22, और अपने "छिपे हुए" प्रबंधित कोड और डेटा संरचना से जटिल "परिणाम सेट" बना रहे हैं और आप HTTP प्रतिक्रिया संदेशों से भी लाभान्वित हो सकते हैं, तो वेब एपीआई शायद सबसे अच्छा शर्त होगा ..
फिर, यह सब अनुसंधान और कर से है। मैंने किसी प्रोडक्शन / पूर्ण विकसित ऐप परिदृश्य में लागू नहीं किया है। मुझे लगता है कि वे दोनों अपनी ताकत और कमजोरियां लेंगे, और निश्चित रूप से कुछ ओवरलैप हैं