soap vs rest difference
यह ट्यूटोरियल Parasoft पर SOAP और REST सेवाओं की व्याख्या करता है। आप स्टेटलेस बनाम स्टेटफुल, रीस्ट पर SOAP की सिक्योरिटी, व्हाई रेस्ट इन फास्टर थान सोप, इत्यादि: सीखेंगे।
हमने क्रमशः XML और JSON प्रारूप में नमूना अनुरोधों और SOAP और REST की प्रतिक्रिया को कवर किया है।
इस ट्यूटोरियल के अंत में, आप अपने JSON प्रोग्राम्स को लिखने में सक्षम होंगे, जिन्हें JSON Path या JSON इवैल्यूएटर और Parasoft के डॉक्यूमेंट कीज़ कॉन्सेप्ट के साथ विभिन्न उदाहरण कार्यक्रमों के साथ समझाया गया है।
=> पूरी SOATEST ट्यूटोरियल श्रृंखला यहां देखें ।
यह ट्यूटोरियल विभिन्न क्रियाओं का वर्णन करता है जो प्रोग्रामिंग उदाहरणों और उनके संबंधित HTTP प्रतिक्रिया कोड और usages के साथ Parasoft या SOAtest स्वचालन उपकरण में उपयोग किए जाते हैं। आप यह समझने में सक्षम होंगे कि अपने SOAestest सूट को बेहतर तरीके से कैसे बनाया जाए जो हमारे आगामी ट्यूटोरियल में विस्तार से कवर किया जाएगा।
आप इस ट्यूटोरियल से गुजरने के बाद नीचे दिए गए सवालों के जवाब देने की कोशिश कर सकते हैं।
आप क्या सीखेंगे:
SOAP सेवा क्या है?
SOAP का अर्थ है सिंपल ऑब्जेक्ट एक्सेस प्रोटोकॉल । प्रोटोकॉल और कुछ नहीं बल्कि नियमों का एक सेट है जिसे आप टेस्ट के लिए परिभाषित करते हैं। यह एक 'राज्य-पूर्ण' प्रोटोकॉल है, REST के विपरीत जिसमें वेब सेवाओं का वर्णन करने के लिए WSDL (वेब सेवा विवरण भाषा) का उपयोग शामिल है।
SOAP में सभी अनुरोध और प्रतिक्रियाएँ XML (एक्स्टेंसिबल मार्कअप लैंग्वेज) में की जाती हैं। अपने समकक्ष की तुलना में SOAP अधिक सुरक्षित है। यह विभिन्न तरीकों के लिए कोई स्वतंत्र प्रसंस्करण प्रदान नहीं करता है और यही कारण है कि इसे 'राज्य-पूर्ण' प्रोटोकॉल कहा जाता है।
SOAP अधिक सुरक्षित क्यों है?
हालाँकि SOAP और REST डेटा सुरक्षा के लिए SSL (सिक्योर सॉकेट लेयर) का समर्थन करते हैं, जबकि अनुरोध करते समय, SOAP एंटरप्राइज़-स्तर की सुरक्षा के लिए वेब सेवा सुरक्षा (जिसे WS- सुरक्षा या WSS के रूप में भी जाना जाता है) का समर्थन करता है, जो REST सेवाओं में अनुपस्थित है। वेब सेवा सुरक्षा (WS-Security, WSS) वेब सेवाओं में सुरक्षा लागू करने के लिए SOAP का विस्तार है।
SOAP का एक नमूना अनुरोध निकाय
Parasoft TUP true
हमारे पास एक एक्सएमएल है जिसे एसओएपी के अनुरोध निकाय के रूप में पेलोड के रूप में उपयोग किया जाएगा। किसी भी XML भाषा में वह संस्करण होता है जिसे स्क्रिप्ट के शीर्ष पर परिभाषित किया जाना चाहिए। आपको टैग के बारे में चिंता करने की ज़रूरत नहीं है, क्योंकि सभी XML फाइलें आपको HTML के विपरीत अपने टैग बनाने देती हैं।
यदि आप SOAP अनुरोध के माध्यम से टोकन जेनरेट करने का प्रयास कर रहे हैं, तो आपको बस URL के साथ उपयोगकर्ता आईडी और पासवर्ड जैसे आवश्यक पैरामीटर प्रदान करने होंगे जो आप अपने अनुकूलित टैग के तहत अनुरोध बॉडी या XML में मार रहे हैं।
नीचे दिए गए Parasoft के ट्रैफ़िक दर्शक का स्क्रीनशॉट है (एक घटक जो आपको परिणाम देखने देता है)।
(छवि स्रोत )
सोप की प्रमुख विशेषताएं
नीचे सूचीबद्ध SOAP की कुछ प्रमुख विशेषताएं हैं:
# 1) किसी भी SOAP लिफाफे का उपयोग REST सेवाओं में किया जा सकता है जैसे कि जनरेट टोकन, लेकिन इसके विपरीत नहीं। इसका अर्थ है कि यदि आपने SOAP का उपयोग करके एक टोकन बनाया है तो उस टोकन का उपयोग REST (HTTP शीर्ष लेख प्रबंधक अनुभाग => प्राधिकरण के तहत) में किया जा सकता है। लेकिन आप SOAP अनुरोध में REST लिफाफे का उपयोग नहीं कर सकते।
#दो) SOAP REST की तुलना में अधिक सुरक्षित है क्योंकि यह सुरक्षित सॉकेट लेयर के साथ ट्रांसमिशन के लिए WS-Security का उपयोग करता है।
# 3) SOAP अनुरोध और प्रतिक्रिया के लिए केवल XML का उपयोग करता है। यह सादे पाठ या अन्य का उपयोग नहीं करता है।
# 4) SOAP राज्य-पूर्ण है (स्टेटलेस नहीं) क्योंकि यह REST के विपरीत संपूर्ण अनुरोध को एक पूरे के रूप में लेता है, जो विभिन्न तरीकों की स्वतंत्र प्रसंस्करण प्रदान करता है। SOAP में कोई स्वतंत्र प्रसंस्करण नहीं है।
REST सेवा क्या है?
REST का अर्थ है प्रतिनिधि राज्य अंतरण । REST एक 'स्टेटलेस' आर्किटेक्चर है जिसमें अनुरोधों और प्रतिक्रियाओं से निपटने के दौरान कई तरीके या क्रियाएं शामिल हैं।
REST में सभी अनुरोध और प्रतिक्रियाएँ XML, JSON (जावास्क्रिप्ट ऑब्जेक्ट संकेतन) या सादा पाठ में की जाती हैं। REST के अनुरोध / पेलोड में JSON (जो कि हल्के वजन वाला है) की भागीदारी के कारण REST SOAP से अधिक तेज़ है।
प्रत्येक विधि को REST में स्वतंत्र रूप से संसाधित किया जाता है यही कारण है कि इसे 'स्टेटलेस' वास्तुकला कहा जाता है।
क्यों तेजी से होता है?
REST की सांविधिक प्रकृति इसे SOAP की तुलना में तेज़ बनाती है। प्रत्येक क्रिया को स्वतंत्र रूप से संसाधित किया जाता है और यह JSON ऑब्जेक्ट का उपयोग करता है जो कि एक लाख से अधिक रिकॉर्ड वाले दस्तावेज़ में किसी विशेष क्षेत्र को ट्रेस करने पर बहुत तेज़ होता है।
इससे पहले कि हम REST में उपयोग की जाने वाली विधियों के बारे में शुरू करें, हमें JSON और JSON पथ के बारे में जानना होगा क्योंकि यह REST में डेटा संचारित करने का सबसे सामान्य प्रारूप है।
Whats JSON है?
JSON का अर्थ जावास्क्रिप्ट ऑब्जेक्ट नोटेशन है। यह एक प्रारूप है जो आमतौर पर REST क्लाइंट में उपयोग किया जाता है।
यह स्व-वर्णन करने के साथ-साथ समझने में आसान है। आपको बस अपने JSON को REST विधि के पेलोड अनुभाग में पास करना होगा। यह एक लाइट-वेट डेटा इंटरचेंज फॉर्मेट है जो REST सेवाओं को एक मिलियन रिकॉर्ड्स के साथ काम करने पर भी बहुत तेज़ होने देता है।
JSON के साथ प्रोग्रामिंग
नीचे एक नमूना कार्यक्रम है जिसमें केवल एक दस्तावेज है जिसे 'फोन' कहा जाता है।
(छवि स्रोत )
यह मेरा नमूना JSON प्रोग्राम है जिसमें मुझे अपने फोन प्रकार का मान प्राप्त करना है। ऐसे परिदृश्य में, आप उस क्षेत्र के माध्यम से प्राप्त करने के लिए दो तकनीकों का उपयोग कर सकते हैं। एक JSON पथ द्वारा है और दूसरा दस्तावेज़ कुंजी द्वारा है।
# 1) JSON पथ के साथ काम करते समय, आप दो तरीकों का उपयोग कर सकते हैं:
$.phone(:1).type $('phone')(':1')('type')
#दो) जैसा कि Parasoft JSON पथ की अनुमति नहीं देता है, हम दस्तावेज़ कुंजी का उपयोग कर सकते हैं जो ट्रैवर्सिंग करते समय थोड़ा सरल है। बस संसाधन टैब में URL के साथ दस्तावेज़ कुंजी पास करें
phone.type
आपको बस नीचे दिए गए स्क्रीनशॉट में ऐड बटन पर क्लिक करना है और फ़ोन टाइप करना है।
नीचे दिए गए उदाहरण में, आपको स्थान फ़ील्ड के अंतिम तत्व से पार करना होगा जो एक सरणी है। इस प्रकार, इसके लिए एक JSON पथ लिखने का प्रयास करें।
वायरलेस नेटवर्क के लिए सुरक्षा कुंजी क्या है
जैसा कि आप पंक्ति संख्या 37 और 39 (ऊपर) में देख सकते हैं, स्थान क्षेत्र के अंतिम तत्व के लिए एक ही ट्रैवर्सिंग के लिए दो अलग-अलग JSON पथ लिखे गए हैं। उसी तरह, आप अपना JSON (एक जटिल नेस्टेड दस्तावेज़) बना सकते हैं और अभ्यास के उद्देश्यों के लिए JSON पथ लिखने का प्रयास कर सकते हैं।
परिणाम:
('हेलसिंगबर्ग')
आप एक खुली वेबसाइट में, जितने चाहें उतने JSON आज़मा सकते हैं JSON ऑनलाइन मूल्यांकन
बाकी सेवाओं में तरीके / क्रिया
REST सेवाएँ कई प्रकार की विधियाँ प्रदान करती हैं जिन्हें विभिन्न प्रकार के अनुरोधों के लिए क्रिया के रूप में भी जाना जाता है। इनमें मुख्य रूप से शामिल हैं POST, PUT, PATCH, GET, DELETE, CUSTOM ।
पद
यह विधि रिकॉर्ड बनाने के लिए ज़िम्मेदार है। सफल निष्पादन पर, HTTP प्रतिक्रिया कोड 201 है।
नीचे नमूना JSON POST दर्शा रहा है।
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
जब हम इस JSON को एक अनुरोध निकाय के रूप में पास करते हैं तो यह 201 प्रतिक्रिया कोड के साथ दस्तावेज़ बनाएगा।
प्राप्त
यह एक अन्य विधि या क्रिया है जिसका उपयोग दस्तावेज़ या रिकॉर्ड को पुनः प्राप्त करने के लिए किया जाता है। जीईटी के सफल निष्पादन पर, प्रतिक्रिया कोड 200 होगा। इसमें कोई अनुरोध निकाय या पेलोड नहीं है।
आपको बस इतना करना है कि Parasoft के संसाधन टैब में GET विधि का उपयोग करके एक ही URL को 'कुंजी' के रूप में दस्तावेज़ कुंजी का उपयोग करके मारा जाए। यहां तक कि अगर आप किसी भी दस्तावेज़ कुंजी को पास नहीं करते हैं, तो यह पूरे दस्तावेज़ को ले जाएगा।
मान लें कि हम दस्तावेज़ कुंजी को 'Test.Test2' के रूप में पास करते हैं, तो यह मुझे निम्नलिखित रिकॉर्ड दिलाएगा।
{ “Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Windows” } } }
लगाया हुआ
इस पद्धति का उपयोग दस्तावेज़ को अपडेट करने के लिए किया जाता है और इसमें सफल निष्पादन के बाद 200 प्रतिक्रिया कोड होता है।
हालांकि POST और PUT में बहुत अंतर नहीं है और यह सभी डेवलपर पर निर्भर करता है कि वे कैसे कोड करना चाहते हैं। ज्यादातर, जब वे कुछ फ़ील्ड मान को अपडेट करना चाहते हैं, तो डेवलपर्स PUT विधि का उपयोग करते हैं।
उदाहरण के लिए: यदि हम POST द्वारा डाले गए उपरोक्त JSON दस्तावेज़ में कुछ मान बदलना चाहते हैं, तो हम PUT पद्धति का उपयोग करके संपूर्ण अनुरोध निकाय को अद्यतन मान के साथ पास करेंगे।
{ “Test”: { “Tester Name”: “Saket Saurav”, “Designation”: “QA”, “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
जब हम ट्रैफ़िक दर्शक की प्रतिक्रिया देखते हैं, तो फ़ील्ड मान को अपडेट किया जाएगा
'प्लेटफ़ॉर्म': 'अपडेटेड विंडोज'
पथ (कस्टम)
यह एक और तरीका है जो पूरी तरह से रिकॉर्ड को अपडेट करने के लिए उपयोग किया जाता है। अधिकांश डेवलपर्स इस विधि को PUT विधि से अधिक पसंद करते हैं क्योंकि यह संसाधनों का सबसे अच्छा उपयोग करता है। यदि आप अपने दस्तावेज़ में कुछ फ़ील्ड मान अपडेट करना चाहते हैं, तो आपको केवल उस फ़ील्ड को रिकॉर्ड के अद्यतन मूल्य के साथ पास करना होगा।
बता दें, अगर हम POST रिकॉर्ड को अपडेट करना चाहते हैं, तो हम केवल PATCH का उपयोग करते समय निम्नलिखित अनुरोध निकाय का उपयोग करेंगे।
{“Test”: { “Test2”: { “Testing”: “Nested Document”, “Platform”: “Updated Windows” } } }
जैसा कि आपने देखा, यहां हमने PUT पद्धति के विपरीत, 'टेस्ट' के क्षेत्र मूल्यों को पारित नहीं किया। सफल निष्पादन आपको 200 या 201 प्रतिक्रिया कोड देगा।
हटाएँ
जैसा कि नाम से ही पता चलता है, यह वरीयताओं के रूप में भी जाना जाता रिकॉर्ड हटा देगा। इसमें GET जैसा कोई अनुरोध निकाय नहीं है और अक्सर 203 (कोई सामग्री) के रूप में प्रतिक्रिया कोड होता है। अगर हमें संपूर्ण दस्तावेज को ऊपर JSON में हटाने की आवश्यकता है, तो हम बस दस्तावेज़ कुंजी को पास करेंगे।
Test
यह पूरे दस्तावेज़ को हटा देगा। यदि हम दस्तावेज़ की कुंजी को पास नहीं करते हैं, तो यह पूरे दस्तावेज़ को भी हटा देगा।
साक्षात्कारकर्ता का जाल
क्यू # 1) अधिकांश साक्षात्कारकर्ता भ्रमित करने की कोशिश करते हैं जब वे आपसे पूछते हैं कि उन्हें 204 के बजाय 200 के रूप में एक सफल डिलीट ऑपरेशन प्रतिक्रिया कोड मिला है। इस तरह की स्थिति में, मुझे क्या करना चाहिए? क्या मुझे इसे बग के रूप में रिपोर्ट करना चाहिए?
उत्तर: उपरोक्त प्रश्न का उत्तर सरल है। आपको बग नहीं उठाना पड़ेगा। इसके बजाय, आप डेवलपर से बात कर सकते हैं या अन्य डिलीट ऑपरेशन प्रतिक्रिया का अवलोकन करने का प्रयास कर सकते हैं। एक प्रतिक्रिया कोड 200 हमेशा सफल संचालन को दर्शाता है और 204 DELETE के लिए विशिष्ट है। एक मौका हो सकता है कि डेवलपर्स ने सभी सफल संचालन के लिए 200 का उपयोग किया।
Q # 2) कोड के 1 मिलियन लाइनों के JSON अनुरोध में किसी डेटाबेस का उपयोग किए बिना विशेष फ़ील्ड मान सही हैं या नहीं, मैं कैसे जांचूं?
उत्तर: उत्तर जीईटी ऑपरेशन में दस्तावेज़ कुंजी भेजकर है। नमूना URL नीचे दिखाया गया है:
https://resource-name.com/context-key/document-key
उपरोक्त URL में, आपकी संदर्भ कुंजी विशिष्ट रूप से 1 मिलियन रिकॉर्ड के JSON को प्राप्त करेगी और दस्तावेज़ कुंजी उस रिकॉर्ड में विशेष फ़ील्ड-मूल्य प्राप्त करेगी।
Q # 3) यदि मैं अपने JSON के शीर्ष पर कोई दस्तावेज़ नाम निर्दिष्ट नहीं करता हूं, तो मुझे पूरे दस्तावेज़ लाने के लिए दस्तावेज़ कुंजी के रूप में क्या पास करना चाहिए?
उत्तर: आप कुछ भी पास कर सकते हैं। हाँ बिल्कुल। यदि आपके पास कोई दस्तावेज़ नाम निर्दिष्ट नहीं है और यदि आपके दस्तावेज़ में केवल फ़ील्ड और मान मौजूद हैं, तो आप किसी भी स्ट्रिंग मान को पारित कर सकते हैं। उस स्ट्रिंग को आपके दस्तावेज़ कुंजी के रूप में स्वचालित रूप से माना जाएगा।
सारांश
अब तक, आपको SOAP और REST वेब सेवाओं, उनकी संरचना, उनके बीच प्रमुख अंतर, उनकी विशेषताओं और उपयोग के बारे में उचित विचार होना चाहिए।
इसके अलावा, इस ट्यूटोरियल में, हमने सबसे सामान्य / महत्वपूर्ण तरीकों (जिन्हें क्रिया के रूप में भी जाना जाता है) को कवर किया है जो मूल्यांकन उद्देश्यों के लिए JSON प्रोग्रामिंग और JSON पथ के साथ REST सेवाओं में उपयोग किए जाते हैं।
PREV ट्यूटोरियल | अगले ट्यूटोरियल
अनुशंसित पाठ
- JSON ट्यूटोरियल: परिचय और शुरुआती के लिए एक पूर्ण गाइड
- XML के लिए डेटाबेस परीक्षण के लिए एक साधारण दृष्टिकोण
- 2021 में 10 सर्वश्रेष्ठ एपीआई परीक्षण उपकरण (SOAP और REST API परीक्षण उपकरण)
- 15+ साबुन ट्यूटोरियल: सर्वश्रेष्ठ वेब सेवा एपीआई परीक्षण उपकरण
- SoapUI और SoapUI Pro की 7 महत्वपूर्ण विशेषताएं - ट्यूटोरियल 2
- SoapUI में Mock Service और Dynamic Response कैसे बनाएँ
- SoapUI Pro में ट्यूटोरियल कैसे बनाएँ: ट्यूटोरियल # 13
- सोपुई डाउनलोड और इंस्टॉलेशन प्रक्रिया द्वारा चरण - सोपीयू ट्यूटोरियल # 3
- शीर्ष 45 वेब सेवा साक्षात्कार प्रश्न और उत्तर (प्रतिष्ठित, SOAP, सुरक्षा प्रश्न)