REST
एक वास्तुकला शैली और नेटवर्क-आधारित सॉफ़्टवेयर आर्किटेक्चर के लिए एक डिज़ाइन है ।
REST
अवधारणाओं को संसाधन के रूप में संदर्भित किया जाता है। किसी संसाधन का प्रतिनिधित्व स्टेटलेस होना चाहिए। यह कुछ मीडिया प्रकार के माध्यम से दर्शाया गया है। मीडिया प्रकार में शामिल हैं XML
, JSON
, और RDF
। घटकों द्वारा संसाधनों में हेरफेर किया जाता है। घटक एक समान यूनिफ़ॉर्म इंटरफेस के माध्यम से संसाधनों का अनुरोध और हेरफेर करते हैं। HTTP के मामले में, इस इंटरफेस मानक HTTP ऑप्स जैसे होते हैं GET
, PUT
, POST
, DELETE
।
REST
आमतौर पर HTTP
HTTP पर प्रयोग किया जाता है , मुख्य रूप से HTTP की सादगी और Restful सिद्धांतों के लिए इसकी बहुत प्राकृतिक मानचित्रण के कारण। REST हालांकि किसी विशिष्ट प्रोटोकॉल से बंधा नहीं है।
मौलिक अनुष्ठान सिद्धांत
क्लाइंट-सर्वर संचार
क्लाइंट-सर्वर आर्किटेक्चर में चिंताओं का एक अलग अलगाव है। रैस्टफुल स्टाइल में निर्मित सभी एप्लिकेशन को सिद्धांत रूप में क्लाइंट-सर्वर भी होना चाहिए।
राज्यविहीन
सर्वर के लिए प्रत्येक क्लाइंट अनुरोध की आवश्यकता है कि इसका राज्य पूरी तरह से प्रतिनिधित्व करता है। सर्वर को किसी भी सर्वर संदर्भ या सर्वर सत्र स्थिति का उपयोग किए बिना क्लाइंट अनुरोध को पूरी तरह से समझने में सक्षम होना चाहिए। यह निम्नानुसार है कि सभी स्थिति क्लाइंट पर रखी जानी चाहिए। हम बाद में और अधिक विस्तार में स्टेटलेस प्रतिनिधित्व पर चर्चा करेंगे।
संचित करने योग्य
कैश की कमी का उपयोग किया जा सकता है, इस प्रकार प्रतिक्रिया डेटा को कैचीबल या नहीं-केचबल के रूप में चिह्नित किया जा सकता है। कैचवेबल के रूप में चिह्नित किसी भी डेटा को उसी बाद के अनुरोध की प्रतिक्रिया के रूप में पुन: उपयोग किया जा सकता है।
यूनिफ़ॉर्म इंटरफ़ेस
सभी घटकों को एक समान वर्दी इंटरफेस के माध्यम से बातचीत करनी चाहिए। क्योंकि इस इंटरफ़ेस के माध्यम से सभी घटक इंटरैक्शन होते हैं, विभिन्न सेवाओं के साथ बातचीत बहुत सरल है। इंटरफ़ेस वही है! इसका अर्थ यह भी है कि अलगाव में कार्यान्वयन परिवर्तन किए जा सकते हैं। इस तरह के परिवर्तन, मौलिक घटक इंटरैक्शन को प्रभावित नहीं करेंगे क्योंकि वर्दी इंटरफ़ेस हमेशा अपरिवर्तित रहता है। एक नुकसान यह है कि आप इंटरफ़ेस के साथ फंस गए हैं। यदि इंटरफ़ेस बदलकर एक विशिष्ट सेवा के लिए एक अनुकूलन प्रदान किया जा सकता है, तो आप भाग्य से बाहर हैं क्योंकि REST इसे प्रतिबंधित करता है। उज्ज्वल पक्ष पर, हालांकि, REST वेब के लिए अनुकूलित है, इसलिए HTTP पर REST की अविश्वसनीय लोकप्रियता है!
उपरोक्त अवधारणाएं आरईएसटी की परिभाषित विशेषताओं का प्रतिनिधित्व करती हैं और अन्य आर्किटेक्चर जैसे वेब सेवाओं से अन्य आर्किटेक्चर को अलग करती हैं। यह ध्यान रखना उपयोगी है कि REST सेवा एक वेब सेवा है, लेकिन एक वेब सेवा आवश्यक रूप से REST सेवा नहीं है।
REST और उपरोक्त सिद्धांतों पर अधिक जानकारी के लिए REST डिज़ाइन प्रिंसिपलों पर इस ब्लॉग पोस्ट को देखें ।