REST प्रणाली और RESTful प्रणाली के बीच अंतर क्या है?
कुछ चीजों से जो मैंने पढ़ी हैं उनमें से अधिकांश तथाकथित सेवाएं वास्तव में रैस्टफुल सेवाएं हैं। तो दोनों में क्या अंतर है।
REST प्रणाली और RESTful प्रणाली के बीच अंतर क्या है?
कुछ चीजों से जो मैंने पढ़ी हैं उनमें से अधिकांश तथाकथित सेवाएं वास्तव में रैस्टफुल सेवाएं हैं। तो दोनों में क्या अंतर है।
जवाबों:
प्रतिनिधि राज्य स्थानांतरण (REST) सॉफ्टवेयर वास्तुकला की एक शैली है। जैसा कि रॉय फील्डिंग द्वारा एक शोध प्रबंध में वर्णित है, REST एक "वास्तुशिल्प शैली" है जो मूल रूप से वेब की मौजूदा तकनीक और प्रोटोकॉल का फायदा उठाती है।
रेस्टफुल का उपयोग आमतौर पर ऐसी वास्तुकला को लागू करने वाली वेब सेवाओं को संदर्भित करने के लिए किया जाता है।
architect
किस? urls के https://translation.googleapis.com/language/translate/v2
इस तरह शैली शैली है?
इन 2 को अलग या तुलना करने के लिए, आपको पता होना चाहिए कि REST क्या है ।
REST ( आरई प्रेजेंटेशनल S tate T ransfer) मूल रूप से कुछ सिद्धांतों वाले विकास की एक स्थापत्य शैली है:
यह स्टेटलेस होना चाहिए
यह केवल URI का उपयोग करके सर्वर से सभी संसाधनों तक पहुंचना चाहिए
इसमें इनबिल्ट एनक्रिप्शन नहीं है
इसका सत्र नहीं होता है
यह एक और केवल एक प्रोटोकॉल - HTTP का उपयोग करता है
CRUD संचालन करने के लिए, इसे HTTP क्रियाओं जैसे , और get
, का उपयोग करना चाहिएpost
put
delete
यह केवल JSON या XML, परमाणु, OData आदि (हल्के डेटा) के रूप में परिणाम वापस करना चाहिए
REST based services
उपरोक्त सिद्धांतों में से कुछ का पालन करें और सभी नहीं
RESTFUL services
इसका मतलब यह उपरोक्त सभी सिद्धांतों का पालन करता है।
यह की अवधारणा के समान है:
Object-based languages
सभी OOPs अवधारणाओं का समर्थन करता है, उदाहरण : C ++, C #
Object oriented languages
OOPs सुविधाओं में से कुछ का समर्थन करता है, उदाहरण : जावास्क्रिप्ट, VB
उदाहरण :
ASP DOT NET MVC 4 REST-Based
जबकि Microsoft WEB API है RESTFul
।
MVC उपरोक्त REST सिद्धांतों में से केवल कुछ का समर्थन करता है, जबकि WEB API उपरोक्त सभी उपरोक्त सिद्धांतों का समर्थन करता है।
MVC केवल REST API से निम्न का समर्थन करता है
हम URI का उपयोग करके संसाधन तक पहुँच सकते हैं
यह सर्वर से संसाधन तक पहुंचने के लिए HTTP क्रिया का समर्थन करता है
यह JSON, XML, यानी HTTPResponse के रूप में परिणाम लौटा सकता है।
हालांकि, उसी समय एमवीसी में
हम सत्र का उपयोग कर सकते हैं
हम इसे स्टेटफुल बना सकते हैं
हम नियंत्रक एक्शन विधि से वीडियो या छवि वापस कर सकते हैं जो मूल रूप से REST सिद्धांतों का उल्लंघन करता है
यही कारण है कि MVC है REST-Based
जबकि WEB एपीआई उपरोक्त सभी सिद्धांतों का समर्थन करता है और है RESTFul
।
"REST" एक वास्तु प्रतिमान है। "रेस्टफुल" उस प्रतिमान का उपयोग करते हुए वर्णन करता है।
architect
किस? urls के https://translation.googleapis.com/language/translate/v2
इस तरह शैली शैली है?
जैसा कि जेसन ने टिप्पणियों में कहा, RESTful का उपयोग केवल एक विशेषण के रूप में किया जाता है, जो कुछ ऐसी चीज़ों का वर्णन करता है जो REST बाधाओं का सम्मान करती हैं।
REST प्रतिनिधित्वपूर्ण राज्य हस्तांतरण के लिए खड़ा है। इसका मतलब यह है कि राज्य स्वयं हस्तांतरित नहीं है, बल्कि इसका केवल एक प्रतिनिधित्व है। सबसे आम उदाहरण एक शुद्ध HTML सर्वर आधारित ऐप (कोई जावास्क्रिप्ट) है। ब्राउज़र को एप्लिकेशन के बारे में कुछ भी नहीं पता है, लेकिन लिंक और संसाधनों के माध्यम से सर्वर ब्राउज़र में एप्लिकेशन की स्थिति को स्थानांतरित करने में सक्षम है। जहां एक बटन सामान्य रूप से एक नियमित विंडोज़ अनुप्रयोग में एक स्टेट वेरिएबल (जैसे पेज ओपन) बदलता है, ब्राउज़र में आपके पास एक लिंक होता है जो इस तरह के राज्य परिवर्तन का प्रतिनिधित्व करता है।
हाइपरमीडिया का उपयोग करने का विचार है। और शायद नए हाइपरमीडिया प्रकार बनाने के लिए। संभावित रूप से हम ब्राउज़र को जावास्क्रिप्ट / AJAX के साथ विस्तारित कर सकते हैं और नए कस्टम हाइपरमीडिया प्रकार बना सकते हैं। और हमारे पास एक वास्तविक REST अनुप्रयोग होगा।
यह मेरा संक्षिप्त संस्करण है कि REST किस लिए खड़ा है, समस्या यह है कि इसे लागू करना कठिन है। मैं व्यक्तिगत रूप से RESTful कहता हूं, जब मैं REST सिद्धांतों का संदर्भ बनाना चाहता हूं, लेकिन मुझे पता है कि मैं वास्तव में REST की पूरी अवधारणा को लागू नहीं कर रहा हूं। हम वास्तव में SOAPful नहीं कहते हैं, क्योंकि आप SOAP का उपयोग करते हैं या नहीं। मुझे लगता है कि ज्यादातर लोग ऐसा नहीं करते हैं जिस तरह से यह निर्माता रॉय फील्डिंग द्वारा परिकल्पित किया गया था, हम वास्तव में रैस्टफुल या रीस्टेल आर्किटेक्चर को लागू करते हैं। आप उनका शोध प्रबंध देख सकते हैं , और आपको REST का संक्षिप्त नाम नहीं बल्कि RESTful मिलेगा।
REST वितरित सॉफ़्टवेयर के लिए सॉफ़्टवेयर आर्किटेक्चर की एक शैली है
REST बाधाओं के अनुरूप होने को 'RESTful' कहा जाता है।
SOAP के विकल्प के रूप में वेब सेवाओं के निर्माण के लिए आज बहुत उपयोग किया जाता है।
यहां आपके पास जांच के लिए कुछ लिंक हैं
http://en.wikipedia.org/wiki/Representational_State_Transfer
http://www.computerworld.com/s/article/297424/Representational_State_Transfer_REST_ http :
//www.ibm-developerworks/webservices/library/ws-restful/
उत्तर के लिए धन्यवाद। एलेक्स रोड्रिगेज का यह लेख पढ़ें जो बताता है कि एक Restful वेब सेवा में 4 बुनियादी विशेषताएं हैं जो हैं:
रिप्रेजेंटेटिव स्टेट ट्रांसफर (आरईएसटी) वर्ल्ड वाइड वेब जैसे वितरित हाइपरमीडिया सिस्टम के लिए सॉफ्टवेयर आर्किटेक्चर की एक शैली है। प्रतिनिधि स्टेट ट्रांसफर शब्द को 2000 में रॉय फील्डिंग 1 [2] द्वारा अपने डॉक्टरेट शोध प्रबंध में पेश और परिभाषित किया गया था । फील्डिंग हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP) विनिर्देश संस्करण 1.0 और 1.1 के प्रमुख लेखकों में से एक है। REST बाधाओं के अनुरूप होने को 'RESTful' कहा जाता है। स्रोत: विकिपीडिया
वेब सेवाएं अनिवार्य रूप से वेब साइट हैं जिनकी सामग्री का उपयोग कंप्यूटर प्रोग्राम द्वारा किया जाता है, न कि लोगों द्वारा। REST वास्तु सिद्धांतों का एक सेट है जो यह निर्धारित करता है कि वेब सेवाओं को HTTP और अन्य वेब मानकों का अधिकतम लाभ उठाना चाहिए, ताकि प्रोग्राम उन सभी अच्छे सामानों को प्राप्त करें जो लोग पहले से ही वेब से बाहर निकल सकते हैं। REST को अक्सर SOAP वेब सेवाओं और अन्य "दूरस्थ प्रक्रिया कॉल" उन्मुख वेब सेवाओं के साथ विपरीत किया जाता है।
Parleys.com पर REST पर स्टीफन टिलकोव की प्रस्तुतियां काफी अच्छी हैं, खासकर यह एक ।
एक पुस्तक के लिए, आप रिचर्डसन और रूबी की बाकी वेब सेवाओं की तुलना में बेहतर नहीं हो सकते ।
REST पर आधारित सेवा को "RESTful सेवा" कहा जाता है।
स्रोत I पोस्ट करने पर भरोसा करता है कि: डॉडोबस आर्काइव
रिचर्डसन मैच्योरिटी मॉडल में परिभाषित एपीआई के 4 स्तर हैं। इन्हें इस प्रकार परिभाषित किया गया है:
स्तर 0: ऐसी कोई भी प्रणाली जिसके सभी एपिस (SOAP या RPC इस श्रेणी में आते हैं) के लिए एक एकल बिंदु है। लेवल 0 एपिस "कमांड्स" के समान हो सकता है।
स्तर 1: एक रिसोर्सयूरी वर्णित प्रणाली। यह एक प्रणाली है जो कई इकाई-आधारित यूआरआई को परिभाषित करता है (एक स्तर 0 सिस्टम की तरह एकल समापन बिंदु होने के बजाय)। ये URI उस संसाधन के विरुद्ध विभिन्न क्रियाओं को कार्यान्वित करने के लिए विभिन्न http क्रियाओं (POST, GET, PUT, आदि) का उपयोग कर सकते हैं।
स्तर 2: उर्फ स्तर 1 w / मानक HTTP विधियों / क्रियाओं और बहु स्थिति कोड प्रतिक्रियाओं का एक सुसंगत उपयोग
स्तर 3: उर्फ स्तर 2 प्लस हेटोएएस (हाइपरमीडिया प्रतिक्रिया में शामिल है जो अतिरिक्त कॉल का वर्णन करता है जो आप कर सकते हैं)
जबकि स्तर 1, स्तर 2, और स्तर 3 को REST सिस्टम के रूप में माना जा सकता है, केवल कठोर स्तर (उर्फ स्तर 2 और स्तर 3) को RESTful माना जाता है।
इसलिए अनिवार्य रूप से सभी रैस्टफुल रीस्ट रीप्स होते हैं, लेकिन सभी रीस्ट एपिस रेस्टफुल नहीं होते हैं
एक "REST सेवा" और "RESTful सेवा" एक और एक ही हैं।
RESTful प्रणाली कोई भी प्रणाली है जो REST सम्मेलनों का अनुसरण करती है जैसा कि मूल दस्तावेज में परिभाषित किया गया है जो RESTO नेटवर्क अनुप्रयोगों का विचार बनाता है ।
यह ध्यान देने योग्य है कि RESTfulness के अलग-अलग स्तर हैं। कुल मिलाकर, REST एक शैली है, एक मानक नहीं है, इसलिए आवश्यकताओं के आधार पर व्याख्या के लिए जगह है। एक उदाहरण श्रेणीबद्ध संसाधन यूआरएल (जैसे है /things/ID/relatedthings
) फ्लैट यूआरएल बनाम (जैसे /things/ID
और /relatedthings?thing=ID
)