REST

2008-09-13 16 views
33

के साथ प्रारंभ करना मैं .NET का उपयोग कर REST पूर्ण वेब सेवाओं को बनाने पर सर्वोत्तम प्रथाओं और नमूना कोड के साथ कुछ अच्छे लिंक ढूंढ रहा हूं।REST

इसके अलावा, आरईएसटी के संबंध में आपके पास जो भी अन्य इनपुट हो सकता है, उसकी सराहना की जाएगी।

+0

संभावित डुप्लिकेट [वास्तव में रीस्टफुल प्रोग्रामिंग क्या है?] (Http://stackoverflow.com/questions/671118/what-exactly-is-restful-programming) –

उत्तर

23

ADO.Net Data Servcies यह वास्तव में आसान निर्माण करने के लिए और नेट की दुनिया में consume RESTful वेब सेवाओं, लेकिन फिर भी अवधारणाओं को समझने के लिए महत्वपूर्ण है बनाता है। डब्ल्यूसीएफ की तुलना में (जो बाद में आरईएसटी समर्थन जोड़ा गया), एडीओ.Net डेटा सर्विसेज मुख्य रूप से आरईएसटी के लिए बनाया गया था।

Guidelines for Building RESTful Web Services आपके पास आवश्यक संसाधनों की सारी जानकारी है।

यह एक और उपयोगी blog entry है:

समान अंतरफलक की कमी का वर्णन कैसे वेब के लिए बनाया गया एक सेवा वेब वास्तुकला में एक अच्छा भागीदार हो सकता है। इन बाधाओं को संक्षेप में निम्नानुसार वर्णित किया गया है:

1) संसाधनों की पहचान: संसाधन किसी भी सूचना आइटम का नाम और प्रतिनिधित्व किया जा सकता है (उदा।एक दस्तावेज, समय में किसी दिए गए बिंदु पर स्टॉक मूल्य, लास वेगास में वर्तमान मौसम, आदि)। आपकी सेवा में संसाधनों को यूआरआई का उपयोग करके पहचाना जाना चाहिए।

2) प्रतिनिधित्व के माध्यम से संसाधनों का कुशलता: एक प्रतिनिधित्व संसाधन का भौतिक प्रतिनिधित्व है और एक वैध मीडिया प्रकार के अनुरूप होना चाहिए। मानक मीडिया प्रकारों का उपयोग करना, क्योंकि आपकी सेवा के पीछे डेटा प्रारूप संभावित ग्राहकों की विस्तृत श्रृंखला तक पहुंच योग्य बनाकर आपकी सेवा की पहुंच बढ़ाता है। संसाधन के साथ बातचीत अपने यूआरआई द्वारा पहचाने गए संसाधन के प्रतिनिधित्व के पुनर्प्राप्ति और हेरफेर पर आधारित होना चाहिए।

3) स्व-वर्णनात्मक संदेश: मानक मीडिया प्रकारों का उपयोग करके, मानक विधि प्रकारों का उपयोग करके और HTTP विधि उपयोग और नियंत्रण शीर्षलेख के माध्यम से संदेशों की कैशबिलिटी को सही ढंग से इंगित करने से सही ढंग से संकेत मिलता है कि संदेश स्वयं वर्णनात्मक हैं। स्वयं वर्णनात्मक संदेश क्लाइंट और सर्वर के बीच मध्यस्थों द्वारा संदेशों को संसाधित किए बिना संदेशों को संसाधित करने के लिए संभव बनाता है।

4) आवेदन राज्य के इंजन के रूप में हाइपरमीडिया: राज्यों के बीच संक्रमण के लिए यूआरआई और हाइपरलिंक्स का उपयोग करके आवेदन राज्य व्यक्त किया जाना चाहिए। यह शायद Roy Fielding's dissertation में निर्धारित वास्तुशिल्प बाधाओं का सबसे विवादास्पद और कम से कम समझा जाता है। वास्तव में, फील्डिंग के शोध प्रबंध में इस बिंदु को घर पर हथियाने के लिए आवेदन राज्य का प्रतिनिधित्व करने के लिए HTTP कुकीज़ का उपयोग करने के खिलाफ एक स्पष्ट तर्क शामिल है, फिर भी इसे अक्सर अनदेखा किया जाता है।

8

विंडोज संचार फाउंडेशन supports REST model since .NET 3.5

आप MSDN पर प्रलेखन और कोड नमूने पा सकते हैं:

REST and POX

कुछ संसाधनों बाकी जानने के लिए:

+0

विंडोज प्लेटफार्म आरईएसटी मॉडल का समर्थन करने के बाद से समर्थन कर रहा है 90 के दशक में टीसीपी/आईपी स्टैक और HTTP प्रोटोकॉल वापस। आरईएसटी एक समस्या को हल करने का एक दृष्टिकोण है जो पुस्तकालय या ढांचे में प्लग नहीं करता है और यह सब जादुई रूप से होता है। –

+0

डैरल मिलर, आपको सावधानीपूर्वक प्रश्न पढ़ना चाहिए। उपयोगकर्ता ने .NET – aku

+0

में आरईएसटी समर्थन के बारे में पूछा, क्षमा करें, मैं अखरोट को तोड़ने के लिए स्लेजहैमर के उपयोग से विचलित था। HttpListener और HttpWebRequest REST का समर्थन करने के लिए पर्याप्त से अधिक हैं। .NET 2.0 काफी सक्षम है। –

7

सबसे अच्छा परिचय मैंने पढ़ा है RESTful Web Services book, जो मॉडल और सिद्धांतों को समझाने से परे है और वास्तव में आपको एक शानदार वेब सेवा को डिज़ाइन करने का तरीका दिखाता है। आरईएसटी एपीआई लिखने/निर्दिष्ट करने के लिए सबसे उपयोगी इसकी चेकलिस्ट है:

  1. डेटा सेट को चित्रित करें [यानी। डेटा मॉडल निर्दिष्ट करें]।
  2. डेटा सेट को संसाधनों में विभाजित करें। प्रत्येक प्रकार के संसाधन के लिए:
  3. यूआरआई के साथ संसाधनों का नाम दें।
  4. वर्दी इंटरफ़ेस का सबसेट एक्सपोज़ करें [यानी। निर्दिष्ट करें कि कौन सी HTTP विधियों का उपयोग किया जाता है और वे क्या करते हैं]।
  5. क्लाइंट से स्वीकार किए गए प्रतिनिधित्व (ओं) को डिज़ाइन करें [उदा। एक्सएमएल प्रारूप जिसे आप पुट या पोस्ट कर सकते हैं]।
  6. क्लाइंट को प्रस्तुत किए गए प्रतिनिधित्व (ओं) को डिज़ाइन करें [उदा। एक्सएमएल आप वापस आते हैं]।
  7. हाइपर्मियाडिया लिंक और रूपों का उपयोग करके, इस संसाधन को मौजूदा संसाधनों में एकीकृत करें।
  8. घटनाओं के सामान्य पाठ्यक्रम पर विचार करें: क्या होने वाला है? [यह एक उपयोग मामले की मुख्य सफलता परिदृश्य की तरह है।]
  9. त्रुटि स्थितियों पर विचार करें। [यह की तरह उपयोग के मामले अपवाद परिदृश्यों है।]
+0

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

3

xml.com पर "RESTful Web" श्रृंखला से लेख के लिए एक महान परिचय कर रहे हैं।

लेखक (जो ग्रेगोरियो, एटम प्रकाशन प्रोटोकॉल फेम) भी नियमित रूप से अपने weblog पर सब बातों बाकी के बारे में व्यावहारिक लेख प्रकाशित करती है। "RESTify DayTrader" (REST आर्किटेक्चर एक बेंचमार्क स्टॉक ट्रेडिंग एप्लिकेशन पर लागू होता है) एक अच्छा प्रारंभिक बिंदु है। मुझे "Why so many Python web frameworks?" भी पसंद है, जो पाइथन में एक छोटे से आराम से वेब ढांचे के कार्यान्वयन को दिखाता है।

1

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

मैं आपको सेवा स्टैक (http://www.servicestack.net/) की सलाह दूंगा, शुरू करने के लिए वेब पर पर्याप्त जानकारी है।

डब्ल्यूसीएफ एएसपी.नेट वेब एपीआई प्रदान करता है, यह ठीक है, लेकिन मैं इसका उपयोग नहीं करता हूं।

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