एक संपूर्ण वेबसाइट पर रेस्टफुल डिज़ाइन लागू करना?


11

यह सब बहुत नया हो सकता है, लेकिन मैं पूरी तरह से RESTful वेबसाइट को डिजाइन करने के लिए अपना सिर लपेटने की कोशिश कर रहा हूं। मैं उपयोगकर्ताओं, फोटो, ब्लॉग पोस्ट, आदि जैसी चीजों के लिए Restful डिजाइन को लागू करने के बारे में समझता हूं क्योंकि मैं उन्हें "ऑब्जेक्ट्स" की तरह समझता हूं।

लेकिन, "हमारे बारे में" पृष्ठ के बारे में क्या। वह किस तरह का संसाधन है? क्या यह शब्द के वास्तविक अर्थों में भी एक संसाधन है? इसके अलावा, मैं URL "http://www.example.com/" पर जाता हूं, मैं किस संसाधन के लिए पूछ रहा हूं? सूचकांक संसाधन?


मुझे लगता है कि कुछ स्पष्टीकरण की आवश्यकता है। आपका अंतिम लक्ष्य क्या है बाकी डिजाइन की क्या जरूरत है। शेष को समीकरण से हटाकर, आपको संतुष्ट करने की क्या आवश्यकता है?
जोनाथन कॉफमैन

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

जवाबों:


6

सबसे आम RESTful वेब साइट संसाधन पैटर्न जो मैं देख रहा हूं वह URI में एक दृश्य जोड़ना है :

/ resourcetype / पहचानकर्ता [/ देखें ] [/ पृष्ठ] [? फ़िल्टरपरम]

जब कोई दृश्य नहीं होता है , तो आप बस एक डिफ़ॉल्ट दृश्य परोसते हैं। आपके मामले में:

  • / - के लिए एक अनुरोध example.comरिटर्न डिफ़ॉल्ट दृश्य अपनी वेबसाइट - शीर्ष स्तर के संसाधन के लिए।
  • / aboutus - शीर्ष-स्तरीय संसाधन का "हमारे बारे में" दृश्य। या, वैकल्पिक रूप से, शीर्ष-स्तरीय सीएमएस के दायरे में एक संसाधन के लिए aboutusएक नामित पहचानकर्ता हो सकता है । *
  • / ग्राहक / 1 / aboutus - यह अनुरोध ग्राहक 1 के लिए स्कोप किए गए "हमारे बारे में" दृश्य को इंगित करेगा ।

यह कहा जा रहा है, कभी-कभी बेहतर शब्दार्थ के लिए थोड़ा सा ठगना सबसे अच्छा है। उदाहरण के लिए, StackOverflow प्रश्नों के लिए Restful / questions / [id] का उपयोग करता है , लेकिन प्रश्न पृष्ठ पूछें / प्रश्न / पूछें जो बहुत Restful askनहीं है ( एक questionsसंसाधन नहीं है ) लेकिन मात्र नश्वर का उपयोग करने के लिए बहुत अधिक समझ में आता है।


* शीर्ष स्तर पर CMS में, संसाधन प्रकार अक्सर होता है, लेकिन हमेशा नहीं, क्योंकि यह निरर्थक है।


10

ध्यान रखें कि प्रति सेक्स्टफुल डिज़ाइन का उद्देश्य एक मानक प्रदान करना है जिसके द्वारा वेब एक समान रूप से प्रोग्राम हो जाता है। अपनी पूरी मानव-सामना करने वाली वेबसाइट को शुद्ध REST शब्दार्थ में बदलना हमेशा उचित या उपयोगी नहीं होता है।

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

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

TL; DR : REST एक उपकरण है। इसका उपयोग कब और कहाँ करें यह उपयोगी है लेकिन इसके लिए बाध्य न हों।


2
+1 URLS से आराम करने के लिए अधिक है।
जोश नू

Ajax, REST, और आपकी REST साइट पर बाहरी लिंकिंग एक बुरा सपना हो सकता है। आपके उत्तर के लिए धन्यवाद।
जॉनी

4

लेकिन, एक "हमारे बारे में" पृष्ठ [?] किस तरह का संसाधन है?

परिसर। एक संसाधन के साथ कुछ भी गलत नहीं है जिसमें घटक, टुकड़े या संरचना है।

संसाधन "संबंधपरक डेटाबेस पंक्तियाँ" या अन्य परमाणु चीजें नहीं हैं। वे संसाधन हैं।

दस्तावेज़-उन्मुख डेटाबेस इसे अधिक इनायत से संभालते हैं क्योंकि एक संसाधन बड़ा और अधिक संरचित हो सकता है।

क्या यह शब्द के वास्तविक अर्थों में भी एक संसाधन है?

हाँ।

इसके अलावा, मैं URL "http://www.example.com/" पर जाता हूं, मैं किस संसाधन के लिए पूछ रहा हूं?

नहीं।

आप "aboutus" संसाधन के लिए पूछ रहे हैं। एक सिंगलटन के संसाधन के लिए यह (लेकिन विषम) संभव है। कोई आईडी नहीं और "सूची" नहीं।

http://www.example.com/aboutus/?format=xml

कई टुकड़ों और भागों के साथ एक जटिल XML दस्तावेज़ लौटाता है। कुछ गलत नहीं है उसके साथ।

सूचकांक संसाधन?

"रेस्टफुल" अर्थ में ज्यादा मायने नहीं रखता है। "इंडेक्स" पेज लोगों के लिए है। RESTful API का उपयोग करने वाला एप्लिकेशन विशिष्ट प्रकार के संसाधनों का अनुरोध करने के लिए डिज़ाइन किया गया है।


4
+1 मैं आपके उत्तर में से एक महत्वपूर्ण बिंदु को छेड़ना चाहता हूं: REST एक प्रोग्राम करने योग्य प्रतिमान है; यह मानव उपभोग के लिए आवश्यक नहीं है।
रीन हेनरिच्स

1

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


1

"हमारे बारे में" का संसाधन है ... हमारे :) एर, आप। उन विशेषताओं के बारे में सोचें जिन्हें आप प्रचारित करना चाहते हैं, और उन लोगों को एक प्रतिनिधित्व के साथ संज्ञा के रूप में रोल करें।

उन मानों को डेटाबेस से नहीं आना है ... यह शायद स्ट्रिंग मानों का एक गुच्छा होगा, और वे विन्यास से आ सकते हैं, या शायद एक वर्ग में हार्ड-कोडित भी हो सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.