RESTful services सेवाओं है कि राज्य represntationally हस्तांतरण, इसलिए नाम रिप्रेसेंटेशनल स्टेट ट्रान्सफर कर रहे हैं। यह वास्तव में का अर्थ है कि डेटा घोषणात्मक तरीके से पारित किया गया है, जो कहने के लिए, आप जो भी मांगते हैं उसे प्राप्त करते हैं।
आरईएसटी एसओएपी से अलग है जिसमें यह प्रोटोकॉल नहीं है, और कोई औपचारिक विनिर्देश नहीं है। कार्यक्षमता को दूरस्थ रूप से एक्सेस करने के लिए एक सामान्य इंटरफ़ेस का उपयोग करके अनुप्रयोगों के बीच डेटा स्थानांतरण को सरल बनाने के लिए SOAP बनाया गया था। दुर्भाग्यवश, आम तौर पर काम करने के लिए, एसओएपी काफी जटिल है, और एसओएपी अनुरोध करना बहुत सीधी नहीं है, एक्सएमएल पार्सिंग और पीढ़ी की आवश्यकता है।
इसके बजाय, आरईएसटी भारी उठाने के लिए हाइपर टेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP) पर निर्भर करता है। वेबसर्वर और सर्वर स्क्रिप्ट पहले ही HTTP के भीतर काम करने के आसपास बनाई गई हैं। आरईएसटी का उपयोग करने का अनुरोध करने के लिए एक यूआरएल अनुरोध के रूप में सरल है, जैसे वेबपेज पर जाकर। किसी भी त्रुटि को सिग्नल करने के लिए एक विश्वसनीय सेवा के लिए API HTTP's methods और status codes का पुन: उपयोग कर सकता है। फैंसी प्रश्नों और विशेष कोड के माध्यम से डेटाबेस में संग्रहीत डेटा तक पहुंचने के बजाय, विश्वसनीय सेवाएं एक मानक फाइल सिस्टम के समान पहुंच की अनुमति देती हैं।
रीस्टफुल सेवाओं का मुख्य हिस्सा घोषणात्मकता है। GET /widgets/109340
पर एक अनुरोध आपको 109340
की आईडी के साथ विजेट के लिए डेटा प्राप्त करने की संभावना है। मैं "संभावना" कहता हूं क्योंकि कोई गारंटी नहीं है। यह कार्यान्वयन पर निर्भर है। मुद्दा यह है कि आप आरईएसटी अनुरोध पर नज़र डाल सकते हैं और जान सकते हैं कि आप क्या लौटाएंगे। एसओएपी के साथ, यह बताना मुश्किल है कि आपके पास वाक्यविन्यास त्रुटि है या नहीं।
यदि /widgets/109340
मौजूद नहीं है, तो संदेश संदेश को वापस करने के बजाय, कुछ विशिष्ट मान के साथ सामग्री मौजूद है, सर्वर 404 Not Found
कोड वापस कर सकता है, और उपयोगकर्ता को पता चलेगा कि विशेष आईडी नहीं है मौजूद।यदि 403
लौटा दिया गया है, तो उपयोगकर्ता को पता चलेगा कि आइटम मौजूद है, लेकिन उनके पास इसे एक्सेस करने की अनुमति नहीं है। ये अनुरोध प्रतिक्रिया कोड पहले से ही उन प्रोग्रामों द्वारा समर्थित हैं जो यूआरएल अनुरोध करते हैं, क्योंकि वे सभी सर्वरों के लिए आम हैं। यह आरईएसटी अनुरोधों को और अधिक लचीला बनाता है।
आरईएसटी आउटपुट प्रारूप पर भी लचीला है, /widgets/109340
एक JSON ऑब्जेक्ट वापस कर सकता है, लेकिन कोई कारण नहीं है कि यह बाइनरी डेटा, एचटीएमएल, एक्सएमएल, एसवीजी, वीडियो या किसी अन्य डेटा प्रारूप को वापस नहीं कर सकता है। CDN वर्जन वाली सामग्री को प्रस्तुत करने के लिए एक आरईएसटी एपीआई का उपयोग कर सकता है जो फाइल सिस्टम पर संग्रहीत किया जा सकता है या नहीं: GET /jQuery/1.0.0
, GET /jQuery/1.7.1
, और GET /jQuery/latest
सभी विश्वसनीय अनुरोध हैं।
मैं आप समझते हैं कि Simple Object Access Protocol (SOAP)
[मैं सिर्फ यह आज पहले अद्यतन] (http://stackoverflow.com/questions/4573305/rest-api-why-use-put है ग्रहण करने के लिए जा रहा हूँ -delete-बाद मिल/4573426 # 4573426)। – zzzzBov
इसके अलावा, [फिलाडेल्फिया] (http://en.wikiquote.org/wiki/Philadelphia_ (फिल्म)), लेकिन ऐसा लगता है कि आप गलत हैं। – zzzzBov
उस पोस्ट में चार साल की उम्र नहीं है। संक्षेप में यह क्या है और यह एसओएपी से अलग कैसे है? एक साधारण उदाहरण बहुत अच्छा होगा। –