REST API उदाहरण के साथ Restful Web Services Tutorial

विषय - सूची:

Anonim

बाकी वेब सेवाएँ क्या है?

रेस्टफुल वेब सर्विसेज एक हल्के, रखरखाव योग्य और स्केलेबल सेवा है जो REST आर्किटेक्चर पर बनाई गई है। आरामदायक वेब सेवा, कॉलिंग क्लाइंट के लिए सुरक्षित, समान, स्टेटलेस तरीके से अपने एप्लिकेशन से एपीआई को उजागर करें। कॉलिंग क्लाइंट रेस्टफुल सेवा का उपयोग करके पूर्वनिर्धारित संचालन कर सकता है। REST का अंतर्निहित प्रोटोकॉल HTTP है। REST का मतलब होता है REpretational State Transfer।

इस REST API ट्यूटोरियल में, आप सीखेंगे-

  • मुख्य कुंजी तत्व
  • बाकी तरीके
  • बेचैन क्यों
  • विश्रामपूर्ण वास्तुकला
  • रेस्टफुल सिद्धांत और बाधाएं
  • ASP.NET में अपनी पहली रेस्टफुल वेब सेवा बनाएं
  • अपनी पहली रेस्टफुल वेब सेवा चलाना
  • अपनी पहली रेस्टफुल वेब सेवा का परीक्षण करना

मुख्य कुंजी तत्व

शुरुआत के बाद से REST वेब सेवाएँ वास्तव में एक लंबा सफर तय करती हैं। 2002 में, वेब कंसोर्टियम ने डब्ल्यूएसडीएल और एसओएपी वेब सेवाओं की परिभाषा जारी की थी। इसने वेब सेवाओं को कैसे कार्यान्वित किया जाता है, इसका मानक बनाया।

2004 में, वेब कंसोर्टियम ने रैस्टफुल नामक एक अतिरिक्त मानक की परिभाषा भी जारी की। पिछले कुछ वर्षों में, यह मानक काफी लोकप्रिय हो गया है। और दुनिया भर में कई लोकप्रिय वेबसाइटों द्वारा उपयोग किया जा रहा है जिसमें फेसबुक और ट्विटर शामिल हैं।

REST संसाधनों को एक्सेस करने का एक तरीका है जो एक विशेष वातावरण में झूठ बोलते हैं। उदाहरण के लिए, आपके पास एक सर्वर हो सकता है जो महत्वपूर्ण दस्तावेजों या चित्रों या वीडियो की मेजबानी कर सकता है। ये सभी संसाधनों का एक उदाहरण हैं। यदि कोई क्लाइंट, कहता है कि वेब ब्राउज़र को इनमें से किसी भी संसाधन की आवश्यकता है, तो उसे इन संसाधनों तक पहुंचने के लिए सर्वर को अनुरोध भेजना होगा। अब REST सेवाएँ इस तरीके को परिभाषित करती हैं कि इन संसाधनों तक कैसे पहुँचा जा सकता है।

निम्न कार्यान्वयन के प्रमुख तत्व इस प्रकार हैं:

  1. संसाधन - पहला मुख्य तत्व संसाधन ही है। मान लें कि एक सर्वर पर एक वेब एप्लिकेशन में कई कर्मचारियों के रिकॉर्ड हैं। मान लें कि वेब एप्लिकेशन का URL http://demo.guru99.com है । अब REST सेवाओं के माध्यम से कर्मचारी रिकॉर्ड संसाधन तक पहुंचने के लिए, कोई भी व्यक्ति http://demo.guru99.com/employee/1 कमांड जारी कर सकता है - यह आदेश वेब सर्वर को उस कर्मचारी का विवरण प्रदान करने के लिए कहता है जिसका कर्मचारी नंबर है १।

  2. अनुरोध क्रिया - ये वर्णन करते हैं कि आप संसाधन के साथ क्या करना चाहते हैं। एक ब्राउज़र डेटा प्राप्त करने के लिए अंतिम बिंदु को निर्देश देने के लिए एक जीईटी क्रिया जारी करता है। हालाँकि, POST, PUT और DELETE जैसी चीजों सहित कई अन्य क्रियाएं उपलब्ध हैं। इसलिए उदाहरण http://demo.guru99.com/employee/1 के मामले में , वेब ब्राउज़र वास्तव में एक GET Verb जारी कर रहा है क्योंकि यह कर्मचारी रिकॉर्ड का विवरण प्राप्त करना चाहता है।

  3. अनुरोध शीर्षलेख - ये अनुरोध के साथ भेजे गए अतिरिक्त निर्देश हैं। ये आवश्यक प्रतिक्रिया या प्राधिकरण विवरण के प्रकार को परिभाषित कर सकते हैं।

  4. अनुरोध निकाय - डेटा अनुरोध के साथ भेजा जाता है। डेटा आमतौर पर अनुरोध में भेजा जाता है जब एक पोस्ट अनुरोध REST वेब सेवाओं के लिए किया जाता है। एक पोस्ट कॉल में, ग्राहक वास्तव में REST वेब सेवाओं को बताता है कि वह सर्वर पर एक संसाधन जोड़ना चाहता है। इसलिए, अनुरोध निकाय में उस संसाधन का विवरण होगा जिसे सर्वर में जोड़ा जाना आवश्यक है।

  5. रिस्पांस बॉडी - यह प्रतिक्रिया का मुख्य निकाय है। इसलिए हमारे RESTful API उदाहरण में, यदि हम http://demo.guru99.com/employee/1 के माध्यम से वेब सर्वर को क्वेरी करना चाहते थे , तो वेब सर्वर रिस्पॉन्स में कर्मचारी के सभी विवरणों के साथ XML दस्तावेज़ लौटा सकता है। तन।

  6. प्रतिक्रिया स्थिति कोड - ये कोड सामान्य कोड होते हैं जिन्हें वेब सर्वर से प्रतिक्रिया के साथ लौटा दिया जाता है। एक उदाहरण कोड 200 है जो सामान्य रूप से वापस किया जाता है यदि क्लाइंट की प्रतिक्रिया देते समय कोई त्रुटि नहीं होती है।

बाकी तरीके

नीचे दिए गए आरेख ज्यादातर सभी क्रियाओं (POST, GET, PUT, और DELETE) और एक REST API उदाहरण से पता चलता है कि उनका क्या मतलब होगा।

मान लेते हैं कि हमारे पास एक RESTful वेब सेवा स्थान पर परिभाषित है। http://demo.guru99.com/employee । जब ग्राहक इस वेब सेवा के लिए कोई अनुरोध करता है, तो वह GET, POST, DELETE और PUT में से किसी भी सामान्य HTTP क्रिया को निर्दिष्ट कर सकता है। नीचे क्या होगा यदि संबंधित क्रिया क्लाइंट द्वारा भेजी गई थी।

  1. POST - इसका उपयोग RESTful वेब सेवा का उपयोग करके एक नया कर्मचारी बनाने के लिए किया जाएगा
  2. GET - इसका उपयोग Restful वेब सेवा का उपयोग करने वाले सभी कर्मचारियों की सूची प्राप्त करने के लिए किया जाएगा
  3. PUT - इसका उपयोग Restful वेब सेवा का उपयोग करके सभी कर्मचारियों को अपडेट करने के लिए किया जाएगा
  4. DELETE - इसका उपयोग Restful सेवाओं का उपयोग करके सभी कर्मचारियों को हटाने के लिए किया जाएगा

आइए, केवल एक रिकॉर्ड के परिप्रेक्ष्य से एक नज़र डालें। मान लीजिए कि कर्मचारी संख्या 1 के साथ एक कर्मचारी रिकॉर्ड था।

निम्नलिखित क्रियाओं के अपने-अपने अर्थ होंगे।

  1. POST - यह तब से लागू नहीं होगा जब हम कर्मचारी 1 का डेटा ला रहे हैं जो पहले से बना हुआ है।
  2. GET - इसका उपयोग कर्मचारी के साथ विवरणों को प्राप्त करने के लिए किया जाएगा
  3. PUT - इसका उपयोग कर्मचारी के विवरण को अपडेट करने के लिए किया जाएगा
  4. DELETE - इसका उपयोग कर्मचारी संख्या 1 के साथ कर्मचारी के विवरण को हटाने के लिए किया जाता है

बेचैन क्यों

बाकी कारणों के कारण बाकी लोग लोकप्रियता में आए:

  1. विषम भाषाओं और वातावरण - यह उन मूलभूत कारणों में से एक है जो हमने SOAP के लिए भी देखे हैं।
  • यह वेब अनुप्रयोगों को सक्षम करता है जो विभिन्न प्रोग्रामिंग भाषाओं पर एक दूसरे के साथ संवाद करने के लिए बनाए जाते हैं
  • रेस्टफुल सेवाओं की मदद से, ये वेब एप्लिकेशन विभिन्न वातावरणों पर निवास कर सकते हैं, कुछ विंडोज पर हो सकते हैं, और अन्य लिनक्स पर हो सकते हैं।

लेकिन अंत में, कोई फर्क नहीं पड़ता कि पर्यावरण क्या है, अंतिम परिणाम हमेशा एक ही होना चाहिए कि उन्हें एक दूसरे से बात करने में सक्षम होना चाहिए। बाकी वेब सेवाएं एक दूसरे से बात करने के लिए विभिन्न प्रोग्रामिंग भाषाओं और प्लेटफार्मों पर निर्मित अनुप्रयोगों के लिए इस लचीलेपन की पेशकश करती हैं।

नीचे दी गई तस्वीर एक वेब एप्लिकेशन का एक उदाहरण देती है जिसमें अन्य अनुप्रयोगों जैसे फेसबुक, ट्विटर और Google से बात करने की आवश्यकता होती है।

अब यदि किसी क्लाइंट एप्लिकेशन को फेसबुक, ट्विटर आदि साइटों के साथ काम करना होता है, तो उन्हें शायद यह जानना होगा कि फेसबुक, गूगल और ट्विटर की भाषा क्या है, और यह भी कि वे किस प्लेटफॉर्म पर बने हैं।

इसके आधार पर, हम अपने वेब एप्लिकेशन के लिए इंटरफेसिंग कोड लिख सकते हैं, लेकिन यह एक बुरा सपना साबित हो सकता है।

फेसबुक, ट्विटर, और Google बाकी वेब सेवाओं के रूप में उनकी कार्यक्षमता को उजागर करते हैं। यह किसी भी क्लाइंट एप्लिकेशन को REST के माध्यम से इन वेब सेवाओं को कॉल करने की अनुमति देता है।

  1. डिवाइसेस की घटना - आजकल, मोबाइल उपकरणों पर काम करने की आवश्यकता है, चाहे वह मोबाइल डिवाइस हो, नोटबुक या कार सिस्टम।

    क्या आप सामान्य वेब अनुप्रयोगों के साथ बात करने के लिए इन उपकरणों पर प्रयासों और कोड के प्रयासों की मात्रा की कल्पना कर सकते हैं? रेस्टफुल एपीआई का फिर से यह काम आसान हो सकता है क्योंकि जैसा कि बिंदु नंबर 1 में बताया गया है, आपको वास्तव में यह जानने की जरूरत नहीं है कि डिवाइस के लिए अंतर्निहित परत क्या है।

  2. अंत में बादल की घटना है - सब कुछ बादल में जा रहा है। अनुप्रयोग धीरे-धीरे क्लाउड-आधारित सिस्टम जैसे Azure या Amazon में स्थानांतरित हो रहे हैं। एज़्योर और अमेज़ॅन रेस्टफुल आर्किटेक्चर के आधार पर बहुत सारे एपीआई प्रदान करते हैं। इसलिए, अनुप्रयोगों को अब इस तरह से विकसित करने की आवश्यकता है कि उन्हें क्लाउड के साथ संगत बनाया जाए। इसलिए चूंकि सभी क्लाउड-आधारित आर्किटेक्चर REST सिद्धांत पर काम करते हैं, इसलिए यह क्लाउड-आधारित सेवाओं का सर्वोत्तम उपयोग करने के लिए REST सेवाओं पर आधारित आर्किटेक्चर पर प्रोग्राम की जाने वाली वेब सेवाओं के लिए अधिक समझ में आता है।

विश्रामपूर्ण वास्तुकला

Restful या REST- शैली पर विचार किए गए एप्लिकेशन या आर्किटेक्चर की निम्नलिखित विशेषताएं हैं

  1. राज्य और कार्यक्षमता को वितरित संसाधनों में विभाजित किया जाता है - इसका अर्थ है कि प्रत्येक संसाधन GET, POST, PUT, या DELETE के सामान्य HTTP आदेशों के माध्यम से सुलभ होना चाहिए। इसलिए यदि कोई सर्वर से फ़ाइल प्राप्त करना चाहता है, तो उन्हें GET अनुरोध जारी करने और फ़ाइल प्राप्त करने में सक्षम होना चाहिए। यदि वे सर्वर पर फ़ाइल डालना चाहते हैं, तो उन्हें POST या PUT अनुरोध जारी करने में सक्षम होना चाहिए। और अंत में, यदि वे सर्वर से किसी फ़ाइल को हटाना चाहते थे, तो वे DELETE अनुरोध जारी करते हैं।
  2. आर्किटेक्चर क्लाइंट / सर्वर, स्टेटलेस, लेयर्ड और कैशिंग का समर्थन करता है -
  • क्लाइंट-सर्वर एक विशिष्ट आर्किटेक्चर है, जहां सर्वर एप्लिकेशन को होस्ट करने वाला वेब सर्वर हो सकता है, और क्लाइंट वेब ब्राउज़र की तरह सरल हो सकता है।
  • स्टेटलेस का अर्थ है कि REST में एप्लिकेशन की स्थिति कायम नहीं है।

    उदाहरण के लिए, यदि आप DELETE कमांड का उपयोग करते हुए सर्वर से किसी संसाधन को हटाते हैं, तो आप यह अपेक्षा नहीं कर सकते कि हटाए गए जानकारी को अगले अनुरोध पर पारित किया जाए।

    यह सुनिश्चित करने के लिए कि संसाधन हटा दिया गया है, आपको GET अनुरोध जारी करने की आवश्यकता होगी। GET अनुरोध का उपयोग पहले सर्वर पर सभी संसाधनों को प्राप्त करने के लिए किया जाएगा। जिसके बाद किसी को यह देखने की आवश्यकता होगी कि क्या संसाधन वास्तव में हटा दिया गया था।

RESTFul सिद्धांतों और बाधाओं

आरईएसटी वास्तुकला कुछ विशेषताओं पर आधारित है जो नीचे विस्तृत हैं। किसी RESTful वेब सेवा को RESTful कहलाने के लिए नीचे की विशेषताओं का अनुपालन करना होगा। इन विशेषताओं को डिज़ाइन सिद्धांतों के रूप में भी जाना जाता है, जिन्हें Restful आधारित सेवाओं के साथ काम करते समय पालन करने की आवश्यकता होती है।

  1. RESTFul क्लाइंट-सर्वर

यह REST आधारित वास्तुकला की सबसे मूलभूत आवश्यकता है। इसका अर्थ है कि सर्वर में एक RESTful वेब सेवा होगी जो क्लाइंट को आवश्यक कार्यक्षमता प्रदान करेगी। क्लाइंट सर्वर पर वेब सेवा के लिए एक अनुरोध भेज रहा है। सर्वर अनुरोध को अस्वीकार कर देगा या ग्राहक को पर्याप्त प्रतिक्रिया देगा।

  1. राज्यविहीन

स्टेटलेस की अवधारणा का अर्थ है कि यह क्लाइंट के लिए सुनिश्चित करना है कि सर्वर को सभी आवश्यक जानकारी प्रदान की जाए। यह आवश्यक है ताकि सर्वर प्रतिक्रिया को उचित रूप से संसाधित कर सके। क्लाइंट से अनुरोधों के बीच सर्वर को किसी भी प्रकार की जानकारी नहीं रखनी चाहिए। यह एक बहुत ही सरल स्वतंत्र प्रश्न-उत्तर क्रम है। क्लाइंट एक सवाल पूछता है, सर्वर उचित रूप से इसका जवाब देता है। ग्राहक एक और सवाल पूछेगा। सर्वर पिछले प्रश्न-उत्तर परिदृश्य को याद नहीं रखेगा और नए प्रश्न का स्वतंत्र रूप से उत्तर देने की आवश्यकता होगी।

  1. कैश

कैशे की अवधारणा को स्टेटलेस की समस्या के साथ मदद करना है जिसे अंतिम बिंदु में वर्णित किया गया था। चूंकि प्रत्येक सर्वर क्लाइंट अनुरोध प्रकृति में स्वतंत्र है, कभी-कभी क्लाइंट सर्वर से उसी अनुरोध के लिए फिर से पूछ सकता है। यह तब भी है जब उसने अतीत में इसके लिए कहा था। यह अनुरोध सर्वर पर जाएगा, और सर्वर प्रतिक्रिया देगा। इससे पूरे नेटवर्क में ट्रैफ़िक बढ़ता है। कैश क्लाइंट के लिए अनुरोध पर लागू एक अवधारणा है जिसे पहले ही सर्वर पर भेजा जा चुका है। इसलिए यदि क्लाइंट द्वारा सर्वर से जाने के बजाय एक ही अनुरोध किया जाता है, तो यह कैश में जाएगा और आवश्यक जानकारी प्राप्त करेगा। यह क्लाइंट से सर्वर तक नेटवर्क नेटवर्क ट्रैफ़िक की मात्रा को बचाता है।

  1. स्तरित प्रणाली

एक स्तरित प्रणाली की अवधारणा यह है कि किसी भी अतिरिक्त परत जैसे कि मिडलवेयर परत को क्लाइंट और वास्तविक सर्वर के बीच RESTFul वेब सेवा की मेजबानी के लिए डाला जा सकता है (मिडिलवेयर परत वह जगह है जहां सभी व्यावसायिक तर्क बनाए जाते हैं। यह एक अतिरिक्त सेवा हो सकती है। जिसके साथ ग्राहक वेब सेवा पर कॉल करने से पहले बातचीत कर सकता है।)।) लेकिन इस परत की शुरूआत को पारदर्शी बनाने की आवश्यकता है ताकि यह क्लाइंट और सर्वर के बीच बातचीत को परेशान न करे।

  1. इंटरफ़ेस / वर्दी अनुबंध

यह अंतर्निहित तकनीक है कि Restful वेब सेवाओं को कैसे काम करना चाहिए। रेस्टफुल मूल रूप से HTTP वेब लेयर पर काम करता है और सर्वर पर संसाधनों के साथ काम करने के लिए नीचे की क्रियाओं का उपयोग करता है

  • POST - सर्वर पर संसाधन बनाने के लिए
  • GET - सर्वर से संसाधन प्राप्त करने के लिए
  • PUT - किसी संसाधन की स्थिति बदलने के लिए या उसे अपडेट करने के लिए
  • DELETE - सर्वर से किसी संसाधन को हटाने या हटाने के लिए

ASP.NET में अपनी पहली रेस्टफुल वेब सेवा बनाएं

अब इस REST API ट्यूटोरियल में, हम सीखेंगे कि ASP.NET में एक रेस्टफुल वेब सेवा कैसे बनाएँ:

विभिन्न भाषाओं में वेब सेवाएँ बनाई जा सकती हैं। REST- आधारित सेवाओं को बनाने के लिए कई एकीकृत विकास वातावरण का उपयोग किया जा सकता है।

इस RESTful API उदाहरण में, हम Visual Studio का उपयोग करके अपने REST अनुप्रयोग .Net में बनाने जा रहे हैं। हमारे उदाहरण में, बाकी वेब सेवाओं के लिए हम निम्नलिखित REST सेवा उदाहरण का अनुकरण करने जा रहे हैं।

हमारे पास एक रेस्टफुल वेब सेवा होने जा रही है जो डेटा के निचले सेट पर काम करेगी।

डेटा का नीचे सेट एक कंपनी के REST API उदाहरण का प्रतिनिधित्व करता है जो ट्यूटोरियल के आधार पर उनके द्वारा तैयार किए गए ट्यूटोरियल को उजागर करता है।

ट्यूटोरियल TutorialName
सरणियों
1 कतारों
ढेर

हमारे REST API ट्यूटोरियल उदाहरण में, हम नीचे दिए गए रेस्टफुल वर्ब्स को लागू करने जा रहे हैं।

  1. जीईटी ट्यूटोरियल - जब कोई क्लाइंट इस रेस्टफुल एपीआई को आमंत्रित करता है, तो उन्हें वेब सेवा से उपलब्ध ट्यूटोरियल का पूरा सेट दिया जाएगा।
  2. जीईटी ट्यूटोरियल / ट्यूटोरियलटिड - जब कोई ग्राहक इस रेस्टफुल एपीआई को आमंत्रित करता है, तो उन्हें क्लाइंट द्वारा भेजे गए ट्यूटोरियलआईडी के आधार पर ट्यूटोरियल नाम दिया जाएगा।
  3. POST Tutorial / Tutorialname - जब कोई क्लाइंट इस रेस्टफुल एपीआई को इनवाइट करता है, तो क्लाइंट एक ट्यूटोरियलनाम डालने का अनुरोध प्रस्तुत करेगा। वेब सेवा तब जमा किए गए ट्यूटोरियल नाम को संग्रह में जोड़ेगी।
  4. DELETE Tutorial / Tutorialid- जब कोई क्लाइंट इस रेस्टफुल एपीआई को इनवॉइस करता है, तो क्लाइंट ट्यूटोरियलआईडी के आधार पर एक ट्यूटोरियलनाम हटाने का अनुरोध प्रस्तुत करेगा। फिर वेब सेवा संग्रह से जमा किए गए ट्यूटोरियल नाम को हटा देगी।

आइए इस RESTful API ट्यूटोरियल में नीचे दिए गए चरणों का पालन करें ताकि हमारी पहली Restful वेब सेवाएं बनाई जा सकें, जो उपरोक्त कार्यान्वयन को पूरा करती हैं।

चरण 1) पहला कदम एक खाली Asp.Net वेब अनुप्रयोग बनाना है। Visual Studio 2013 से, मेनू विकल्प File-> नई परियोजना पर क्लिक करें।

एक बार जब आप नए प्रोजेक्ट विकल्प पर क्लिक करते हैं, तो विज़ुअल स्टूडियो तब आपको प्रोजेक्ट का प्रकार चुनने और प्रोजेक्ट के आवश्यक विवरण देने के लिए एक और डायलॉग बॉक्स देगा। यह इस RESTful API ट्यूटोरियल के अगले चरण में समझाया गया है

चरण 2) इस चरण में,

  1. पहले ASP.NET वेब अनुप्रयोग के Restful वेब सेवाओं C # वेब टेम्पलेट को चुनना सुनिश्चित करें। वेब सेवा परियोजना बनाने के लिए परियोजना को इस प्रकार का होना चाहिए। इस विकल्प को चुनकर, विजुअल स्टूडियो आवश्यक फ़ाइलों को जोड़ने के लिए आवश्यक कदम उठाएगा, जो किसी भी वेब-आधारित एप्लिकेशन द्वारा आवश्यक हैं।
  2. अपने प्रोजेक्ट के लिए एक नाम दें जो हमारे मामले में "Webservice.REST" के रूप में दिया गया है।
  3. फिर एक स्थान देना सुनिश्चित करें, जहां प्रोजेक्ट फ़ाइलों को संग्रहीत किया जाएगा।

एक बार जब आप दृश्य स्टूडियो 2013 में अपने समाधान एक्सप्लोरर में बनाई गई परियोजना फ़ाइल देखेंगे।

चरण 3) अगला चरण वेब सेवा फ़ाइल बनाने के लिए है जिसमें रेस्टफुल वेब सेवा है

  1. पहले प्रोजेक्ट फ़ाइल पर राइट-क्लिक करें जैसा कि नीचे दिखाया गया है
  1. इस चरण में,
    1. प्रोजेक्ट फ़ाइल पर राइट-क्लिक करें
    2. "नया आइटम जोड़ें" विकल्प चुनें।

दिखाई देने वाले संवाद बॉक्स में, आपको निम्नलिखित कार्य करने होंगे

  1. WCF सेवा (अजाक्स-सक्षम) का विकल्प चुनें - इस प्रकार की एक फ़ाइल चुनें, यह विज़ुअल स्टूडियो को कुछ मूल कोड जोड़ने का कारण बनता है जो एक Restful वेब सेवा बनाने में मदद करता है। WCF का मतलब विंडोज कम्युनिकेशन फाउंडेशन है। डब्ल्यूसीएफ विभिन्न प्लेटफार्मों या टीसीपी, एचटीटीपी, एचटीटीपीएस जैसे विभिन्न प्रोटोकॉल पर संवाद करने के लिए एक ही मंच के लिए एक पुस्तकालय है। अजाक्स मूल रूप से अतुल्यकालिक जावास्क्रिप्ट और एक्सएमएल है। AJAX पर्दे के पीछे सर्वर के साथ छोटी मात्रा में डेटा का आदान-प्रदान करके वेब पृष्ठों को अतुल्यकालिक रूप से अपडेट करने की अनुमति देता है।
  2. अगले सेवा के लिए एक नाम दें जो हमारे मामले में ट्यूटोरियल सेवा है।
  3. अंत में, समाधान में सेवा को जोड़ने के लिए Add बटन पर क्लिक करें।

चरण 4) अगला कदम वास्तव में इस परियोजना को Restful वेब सेवाओं के साथ काम पूरा करने में सक्षम करने के लिए कॉन्फ़िगरेशन परिवर्तन करना है। इसके लिए Web.config नामक फ़ाइल में बदलाव करना होगा । यह फ़ाइल उसी विंडो में दिखाई देती है, जो Webservice प्रोजेक्ट फ़ाइल है। फ़ाइल Web.config में सभी कॉन्फ़िगरेशन शामिल हैं जो वेब एप्लिकेशन को काम करना चाहिए जैसा कि इसे करना चाहिए। वास्तव में किया जा रहा परिवर्तन एप्लिकेशन को शुद्ध रेस्टफुल वेब सेवा के रूप में डेटा भेजने और प्राप्त करने की अनुमति देता है।

  1. कोड खोलने के लिए Web.config फ़ाइल पर क्लिक करें
  1. लाइन के लिए खोजें
  1. लाइन को में बदलें

चरण 5) इस RESTful API ट्यूटोरियल में अगला चरण कार्यान्वयन के लिए हमारे कोड को जोड़ना है। सभी नीचे दिए गए कोड को TutorialService.svc फ़ाइल में लिखा जाना है

  1. पहला बिट हमारे डेटा का प्रतिनिधित्व करने के लिए कोड जोड़ना है जो हमारे कार्यक्रम में उपयोग किया जाएगा। इसलिए हमारे पास "एरेस", "क्यूज़" और "स्टैक" के मूल्यों के साथ स्ट्रिंग चर की एक सूची होने वाली है। यह हमारे होस्टिंग वेब सेवा के माध्यम से उपलब्ध ट्यूटोरियल नाम का प्रतिनिधित्व करेगा।
namespace Webservice.REST{[ServiceContract(Namespace = "")][AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowedpublic class TutorialService{private static List  lst = new List  (new String[] {"Arrays","Queues","Stacks"});  

चरण 6) अगला हम अपने जीईटी विधि के लिए कोड को परिभाषित करेंगे। यह कोड समान TutorialService.svc फ़ाइल में भी रहेगा। जब भी हम अपने ब्राउज़र से सेवा को कॉल करेंगे यह कोड चलेगा।

नीचे दिए गए परिदृश्य को पूरा करने के लिए नीचे दी गई विधि का उपयोग किया जाएगा

  • यदि कोई उपयोगकर्ता सभी उपलब्ध ट्यूटोरियल की सूची चाहता है, तो इसे पूरा करने के लिए नीचे दिए गए कोड को लिखना होगा।
[WebGet(UriTemplate="/Tutorial")]public String GetAllTutorial(){int count = 1st.Count;String TutorialList = "";for (int i = 0; i < count; i++)TutorialList = TutorialList + lst[i] + ",";return TutorialList;}

कोड स्पष्टीकरण: -

  1. कोड की पहली पंक्ति सबसे महत्वपूर्ण है। इसका उपयोग यह परिभाषित करने के लिए किया जाता है कि हम इस विधि को URL के माध्यम से कैसे कह सकते हैं। इसलिए यदि हमारी वेब सेवा का लिंक http: // localhost: 52645 / TutorialService.svc है और यदि हम URL पर http: // localhost: 52645 / TutorialService.svc / ट्यूटोरियल , उपरोक्त कोड के रूप में '/' ट्यूटोरियल जोड़ते हैं। लागू किया जाएगा। 'वेबगेट' की विशेषता एक पैरामीटर है जो इस विधि को एक RESTful विधि होने की अनुमति देता है ताकि इसे GET क्रिया के माध्यम से लागू किया जा सके।
  2. कोड के इस खंड का उपयोग 'lst' वेरिएबल में स्ट्रिंग्स की हमारी सूची के माध्यम से जाने के लिए किया जाता है और उन सभी को कॉलिंग प्रोग्राम में लौटाया जाता है।

चरण 7) नीचे दिया गया कोड यह सुनिश्चित करता है कि यदि ट्यूटोरियल आईडी के साथ ट्यूटोरियल सेवा के लिए एक जीईटी कॉल किया जाता है, तो यह ट्यूटोरियल आईडी के आधार पर संबंधित ट्यूटोरियल नाम लौटाएगा।

[WebGet (UriTemplate = "/Tutorial/{Tutorialid}")]public String GetTutorialbyID(String Tutorialid){int pid;Int32.TryParse(Tutorialid, out pid);return lst[pid];}

कोड स्पष्टीकरण: -

  1. कोड की पहली पंक्ति सबसे महत्वपूर्ण है। इसका उपयोग यह परिभाषित करने के लिए किया जाता है कि हम इस विधि को URL के माध्यम से कैसे कह सकते हैं। इसलिए यदि हमारी वेब सेवा का लिंक http: // localhost: 52645 / TutorialService.svc है और यदि हम URL पर '/' ट्यूटोरियल / {ट्यूटोरियलिड} को जोड़ते हैं, तो हम वेब सेवा को http: कॉल कर सकते हैं। एक उदाहरण के रूप में //localhost and2645/TutorialService.svc/Tutorial/1 । वेब सेवा को तब ट्यूटोरियल नाम वापस करना होगा जिसमें ट्यूटोरियल आईडी # 1 था।
  2. कोड के इस खंड का उपयोग "ट्यूटोरियल नाम" को वापस करने के लिए किया जाता है, जिसमें ट्यूटोरियल आईडी वेब विधि से पारित हो गया है।
  • डिफ़ॉल्ट रूप से, जिसे याद रखने की आवश्यकता है वह यह है कि ब्राउज़र में URL को जो भी पास किया गया है वह एक स्ट्रिंग है।
  • लेकिन आपको यह याद रखना होगा कि हमारी सूची में अनुक्रमणिका का पूर्णांक होना आवश्यक है, इसलिए हम ट्यूटोरियल कोड को एक पूर्णांक में परिवर्तित करने के लिए आवश्यक कोड जोड़ रहे हैं और फिर हमारी सूची में सूचकांक स्थिति तक पहुंचने के लिए इसका उपयोग करते हैं।
  • फिर कॉलिंग प्रोग्राम के अनुसार वैल्यू वापस करें।

चरण 8) अगला कदम हमारी POST विधि के लिए कोड लिखना है। जब भी हम POST विधि के माध्यम से ट्यूटोरियल की हमारी सूची में एक स्ट्रिंग मान जोड़ना चाहते हैं, तो यह विधि लागू हो जाएगी। उदाहरण के लिए, यदि आप "सॉफ़्टवेयर टेस्टिंग" का ट्यूटोरियल नाम जोड़ना चाहते हैं तो आपको POST विधि का उपयोग करना होगा।

कोड स्पष्टीकरण: -

  1. पहली पंक्ति 'WebInvoke' विशेषता है जो हमारी पद्धति से जुड़ी हुई है। यह POST कॉल के माध्यम से विधि को लागू करने की अनुमति देता है। RequestFormat और ResponseFormat विशेषता को JSON के रूप में उल्लिखित किया जाना है, क्योंकि RESTFul वेब सेवा में मान पोस्ट करते समय, मान इस प्रारूप में होना चाहिए।
  2. कोड की दूसरी पंक्ति का उपयोग POST कॉल के माध्यम से पारित स्ट्रिंग मान को ट्यूटोरियल स्ट्रिंग्स की हमारी मौजूदा सूची में जोड़ने के लिए किया जाता है।

चरण 9) अंत में हम DELETE ऑपरेशन को संभालने के लिए अपना तरीका जोड़ने जा रहे हैं। जब भी हम DELETE विधि के माध्यम से ट्यूटोरियल की हमारी सूची से मौजूदा स्ट्रिंग मान को हटाना चाहते हैं, तब यह विधि लागू की जाएगी।

[WebInvoke(Method = "DELETE", RequestFormat = WebMessageFormat.Ison,UriTemplate = "/Tutorial/{Tutorialid}", ResponseFormat = WebMessageFormat.Json,BodyStyle = WebMessageBodyStyle.Wrapped)]public void DeleteTutorial(String Tutorialid){int pid;Int32.TryParse(Tutorialid, out pid);1st.RemoveAt(pid);}

कोड स्पष्टीकरण: -

  1. पहली पंक्ति 'WebInvoke' विशेषता है जो हमारी पद्धति से जुड़ी हुई है। यह POST कॉल के माध्यम से विधि को लागू करने की अनुमति देता है। RequestFormat और ResponseFormat विशेषता को JSON के रूप में उल्लिखित किया जाना है, क्योंकि RESTFul वेब सेवा में मान पोस्ट करते समय, मान इस प्रारूप में होना चाहिए। ध्यान दें कि विधि पैरामीटर "DELETE" पर सेट किया जा रहा है। इसका मतलब यह है कि जब भी हम DELETE क्रिया जारी करते हैं, तो यह विधि लागू होगी।
  2. DELETE कॉल के माध्यम से भेजे गए Tutorialid को लेने और बाद में हमारी सूची से उस आईडी को हटाने के लिए कोड की दूसरी पंक्ति का उपयोग किया जाता है। ( कोड में Int32 फ़ंक्शन का उपयोग ट्यूटोरियल आईडी को स्ट्रिंग चर से पूर्णांक में बदलने के लिए किया जाता है)।

अपनी पहली रेस्टफुल वेब सेवा चलाना

अब जब हमने उपरोक्त अनुभाग में अपनी पूरी वेब सेवा बना ली है। आइए देखें कि हम ट्यूटोरियल सेवा कैसे चला सकते हैं ताकि इसे किसी भी ग्राहक से मंगवाया जा सके।

वेब सेवा को चलाने के लिए, कृपया नीचे दिए गए चरणों का पालन करें

चरण 1) प्रोजेक्ट फ़ाइल पर राइट क्लिक करें - Webservice.REST

चरण 2) मेनू विकल्प चुनें 'स्टार्टअप प्रोजेक्ट के रूप में सेट करें'। यह सुनिश्चित करेगा कि यह प्रोजेक्ट तब चलाया जाए जब Visual Studio संपूर्ण समाधान चलाता है

चरण 3) अगला कदम परियोजना को स्वयं चलाना है। अब सिस्टम पर स्थापित डिफ़ॉल्ट ब्राउज़र के आधार पर, दृश्य स्टूडियो में रन बटन के बगल में उपयुक्त ब्राउज़र नाम आएगा। हमारे मामले में, हमारे पास Google Chrome दिख रहा है। बस इस बटन पर क्लिक करें।

आउटपुट: -

जब प्रोजेक्ट चलाया जाता है, तो आप अपने TutorialService.svc / Tutorial सेक्शन में ब्राउज़ कर सकते हैं, और आपको नीचे आउटपुट मिलेगा।

उपरोक्त आउटपुट में,

  • आप देख सकते हैं कि ब्राउज़र 'GET' क्रिया को लागू कर रहा है और वेब सेवा में 'GetAllTutorial' विधि को निष्पादित कर रहा है। इस मॉड्यूल का उपयोग हमारी वेब सेवा द्वारा उजागर किए गए सभी ट्यूटोरियल को प्रदर्शित करने के लिए किया जाता है।

अपनी पहली रेस्टफुल वेब सेवा का परीक्षण करना

उपरोक्त अनुभाग में, हम पहले ही देख चुके हैं कि 'GET' क्रिया को निष्पादित करने के लिए ब्राउज़र का उपयोग कैसे करें और 'GetAllTutorial' का आह्वान करें।

  1. चलिए अब निम्न उपयोग की स्थिति को निष्पादित करने के लिए ब्राउज़र का उपयोग करते हैं।

GET Tutorial / Tutorialid - जब कोई क्लाइंट इस रेस्टफुल API को इनवॉइस करता है, तो उन्हें क्लाइंट द्वारा दिए गए Tutorialid के आधार पर ट्यूटोरियल नाम दिया जाएगा।

अपने ब्राउज़र में, URL में ट्यूटोरियल शब्द के बाद स्ट्रिंग / 1 को जोड़ें। यदि आप एंटर बटन दबाते हैं, तो आपको नीचे आउटपुट मिलेगा

अब आप Queues का आउटपुट देखेंगे जो वास्तव में ट्यूटोरियल स्ट्रिंग्स की हमारी सूची में नंबर 1 से मेल खाती है। इसका मतलब यह है कि 'गेटटाइपर्सबीआईडी' विधि अब हमारे वेबसर्वर से मंगाई जा रही है। यह यह भी दर्शाता है कि 1 का मान हमारी वेब सेवा और हमारी विधि के लिए ब्राउज़र के माध्यम से सफलतापूर्वक पारित किया जा रहा है और यही कारण है कि हमें ब्राउज़र में "क्यूज़" का सही संगत मूल्य मिल रहा है।

  1. नीचे दिए गए परिदृश्य को निष्पादित करके हमारी वेब सेवा का उपभोग करते हैं। इसके लिए, आपको "फ़िडलर" नामक उपकरण को स्थापित करना होगा जो साइट से एक मुफ्त डाउनलोड करने योग्य उपकरण है।

POST Tutorial / Tutorialname - जब कोई क्लाइंट इस रेस्टफुल एपीआई को इनवाइट करता है, तो क्लाइंट एक ट्यूटोरियलनाम डालने का अनुरोध प्रस्तुत करेगा। वेब सेवा तब जमा किए गए ट्यूटोरियल नाम को संग्रह में जोड़ेगी।

फेल्डलर टूल चलाएं और नीचे दिए गए चरणों को पूरा करें;

  1. संगीतकार अनुभाग पर जाएं। यह अनुरोध बनाने के लिए उपयोग किया जाता है जिसे किसी भी वेब पर सबमिट किया जा सकता है

    आवेदन।

  2. सुनिश्चित करें कि अनुरोध प्रकार "POST" है और सही URL हिट हो रहा है, जो हमारे मामले में http: // localhost: 52645 / TutorialService.svc / Tutorial में होना चाहिए।
  3. सुनिश्चित करें कि सामग्री-प्रकार को अनुप्रयोग / json के रूप में चिह्नित किया गया है। याद रखें कि हमारी वेब सेवा में हमारा POST अनुरोध विधि केवल json शैली डेटा को स्वीकार करती है, इसलिए हमें यह सुनिश्चित करने की आवश्यकता है कि जब हम अपने आवेदन में अनुरोध भेज रहे हैं तो यह निर्दिष्ट किया गया हो।
  4. अंत में, हमें अपना डेटा दर्ज करना होगा। याद रखें कि POST के लिए हमारा तरीका 'str' नामक पैरामीटर को स्वीकार करता है। इसलिए यहां हम यह निर्दिष्ट कर रहे हैं कि हम "Trees" नामक मान को अपने ट्यूटोरियल नामों के संग्रह में जोड़ना चाहते हैं और यह सुनिश्चित करते हैं कि इसे str वैरिएबल नाम से टैग किया गया है।

अंत में, बस फिडलर में एक्सक्यूट बटन पर क्लिक करें। यह हमारी वेब सेवा को डेटा "पेड़" पोस्ट करने के लिए वेब सेवा के लिए एक अनुरोध भेजेगा।

अब, जब हम अपनी ट्यूटोरियल सूची में सभी स्ट्रिंग्स दिखाने के लिए ट्यूटोरियल URL पर ब्राउज़ करते हैं, तो आप देखेंगे कि "ट्री" का मूल्य भी मौजूद है। इससे पता चलता है कि वेब सेवा के लिए POST अनुरोध सफलतापूर्वक निष्पादित किया गया था और यह सफलतापूर्वक हमारी ट्यूटोरियल सूची में जोड़ा गया था।

  1. नीचे दिए गए परिदृश्य को निष्पादित करके हमारी वेब सेवा का उपभोग करते हैं। इसके लिए भी हमें फिडलर टूल का उपयोग करना होगा

DELETE Tutorial / Tutorialid- जब कोई क्लाइंट इस रेस्टफुल एपीआई को इनवॉइस करता है, तो क्लाइंट ट्यूटोरियलआईडी के आधार पर एक ट्यूटोरियलनाम हटाने का अनुरोध प्रस्तुत करेगा। फिर वेब सेवा संग्रह से जमा किए गए ट्यूटोरियल नाम को हटा देगी।

Filddler टूल चलाएं और नीचे दिए गए चरणों को पूरा करें

  1. संगीतकार अनुभाग पर जाएं। यह अनुरोध बनाने के लिए उपयोग किया जाता है जिसे किसी भी वेब पर सबमिट किया जा सकता है

    आवेदन।

  2. सुनिश्चित करें कि अनुरोध प्रकार "DELETE" है और सही URL हिट हो रहा है, जो हमारे मामले में http: // localhost: 52645 / TutorialService.svc / Tutorial होना चाहिए । सुनिश्चित करें कि वह आईडी जो एक पैरामीटर के रूप में URL के माध्यम से भेजी गई सूची में एक स्ट्रिंग को हटाने के लिए उपयोग की जाती है। हमारे REST उदाहरण में, हम 1 भेज रहे हैं, इसलिए यह हमारे संग्रह में 2 nd तत्व को हटा देगा, जो कि "Queues" है।

अंत में, बस फिडलर में एक्सक्यूट बटन पर क्लिक करें। यह हमारी वेब सेवा को डेटा "क्युस" को डिलीट करने के लिए वेब सेवा के लिए एक अनुरोध भेजेगा।

अब, जब हम अपनी ट्यूटोरियल सूची में सभी स्ट्रिंग्स को दिखाने के लिए ट्यूटोरियल URL को ब्राउज़ करते हैं, तो आप देखेंगे कि "क्यू" का मूल्य अब मौजूद नहीं है।

यह दिखाता है कि वेब सेवा के लिए DELETE अनुरोध सफलतापूर्वक निष्पादित किया गया था। ट्यूटोरियल स्ट्रिंग्स की हमारी सूची में इंडेक्स नंबर 1 का तत्व सफलतापूर्वक हटा दिया गया था।

सारांश

  • REST का मतलब है, स्टेटिकेशनल ट्रांसफर। REST का उपयोग उन वेब सेवाओं के निर्माण के लिए किया जाता है जो प्रकृति में हल्की, रखरखाव योग्य और स्केलेबल हैं।
  • अधिक से अधिक एप्लिकेशन रेस्टफुल आर्किटेक्चर के लिए आगे बढ़ रहे हैं। ऐसा इसलिए है क्योंकि अब बहुत सारे लोग मोबाइल उपकरणों का उपयोग कर रहे हैं और व्यापक रूप से क्लाउड पर जा रहे हैं।
  • REST के मुख्य पहलू वे संसाधन हैं जो सर्वर और GET, POST, PUT और DELETE की क्रियाओं पर रहते हैं, जिनका उपयोग इन संसाधनों के साथ काम करने के लिए किया जा सकता है।
  • विज़ुअल स्टूडियो और। नेट का उपयोग रेस्टफुल वेब सेवाओं को बनाने के लिए किया जा सकता है।
  • POST और PUT के लिए वेब सेवाओं का परीक्षण करते समय, आपको फ़िडलर नामक एक अन्य टूल का उपयोग करना होगा, जिसका उपयोग सर्वर पर POST और PUT अनुरोध भेजने के लिए किया जा सकता है।