2014-04-25 2 views
5

लघु कहानी: मैं ट्यूटोरियल या एक गीथब प्रोजेक्ट की तलाश में हूं जिसमें रीस्टफुल सर्विस डिज़ाइन "सर्वोत्तम प्रथाओं" का उदाहरण है।स्प्रिंग रीस्टफुल सर्वश्रेष्ठ अभ्यास - उदाहरण/ट्यूटोरियल की आवश्यकता

लंबी कहानी: मैं डिजाइन और वेब सेवाओं को लागू करने के लिए "आधिकारिक" स्प्रिंग ट्यूटोरियल के माध्यम से जा रहा हूँ: http://spring.io/guides/tutorials/rest

यह एक छोटा सा परियोजना का एक उदाहरण है। वे इस परियोजना के लिए "हेक्सागोनल आर्किटेक्चर" और "इवेंट" कक्षाओं का एक समूह का उपयोग कर रहे हैं। इसके माध्यम से जाकर, मैं मदद नहीं कर सकता लेकिन ध्यान दें कि यह उदाहरण परियोजना के लिए बहुत अधिक इंजीनियर है। परीक्षणों की गणना नहीं कर रहे 50 से अधिक वर्ग हैं। क्या यह वास्तव में ऐसी सेवा का "सर्वोत्तम अभ्यास" उदाहरण है? यदि नहीं, तो क्या कोई अन्य उदाहरण बेहतर हैं?

+0

हमें आपके लिए ट्यूटोरियल ढूंढने के लिए मत कहें। ऐसा करने के लिए Google, याहू, या बिंग का उपयोग करें। –

+2

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

+0

मुझे लगता है कि आपने जो ट्यूटोरियल लिंक किया है, वह बस विस्तार से बताता है कि आरईएसटी क्या है। किसी भी मामले में, यह ऑफ-विषय की तरह (अगर पूरी तरह से नहीं) है। –

उत्तर

24

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

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

  2. त्रुटि प्रबंधन की बात करते हुए, इसे एक सही सेवा में सही करना मुश्किल है। आपको निश्चित रूप से संरचित डेटा के माध्यम से त्रुटियों के ग्राहकों को अच्छी तरह से सूचित करने का एक तरीका होना चाहिए। मुझे लगता है कि यह आपके सभी प्रतिक्रियाओं का हिस्सा होना चाहिए। आपको यह तय करने की आवश्यकता होगी कि आप किस त्रुटि के बारे में जानकारी भेजते हैं, जिनके बारे में आप चुप हैं और बस लॉग इन करते हैं, आदि

  3. शायद आपके पास मिलने वाले अनुरोधों के लिए आपके पास कुछ डेटा ऑब्जेक्ट होंगे, और आपके द्वारा प्रतिक्रियाएं भेजना। उन्हें एक अलग जार में पैकेज करें। अपने कंट्रोलर द्वारा लागू इस जार इंटरफेस में जोड़ें। इन इंटरफेस का एक आसान दूसरा कार्यान्वयन भी जोड़ें, जो आपकी सेवा को कॉल करता है। यहां आप जाते हैं, आपके पास क्लाइंट lib है। इसे वितरित करें, अपने जावा क्लाइंट को खुश करें।

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

  5. वेब सर्वर के आंतरिक या अधिक कम से कम कम करके, "इकाई" परीक्षण नियंत्रकों के लिए सभी तरह के libs हैं। ये बहुत उपयोगी हैं, लेकिन खुद को सीमित न करें। एक qa env है, जहां आप अपनी सेवा को पूरी तरह से तैनात करते हैं, और एक क्यूए ऐप है जो क्यूए एनवीवी पर आपकी सेवा के उदाहरण के लिए वास्तविक पूर्ण अनुरोध भेजता है, और उनके जवाबों का विश्लेषण करता है।

  6. विभिन्न कॉलों में चीजों को सरल और सुसंगत रखने की कोशिश करें। उदाहरण के लिए प्रत्येक प्रतिक्रिया में एक ही फ़ील्ड के साथ एक ही "त्रुटि" भाग हो सकता है जो गलत तरीके से संरचित प्रोग्रामेटिक रूप से प्रयोग योग्य रूप में जानकारी प्रदान करता है।

  7. आरईएसटी एक अच्छा अमूर्त है, लेकिन इसकी सीमा है: अभ्यास में, /delete.json?id=3 विभिन्न सेवाओं पर बहुत अलग प्रभाव डाल सकता है। अपने ग्राहकों को अनुमान लगाने में सक्षम होने की उम्मीद न करें कि आपके विशेष मामले में "एड" और "डिलीट" का अर्थ क्या होगा, क्योंकि वे शायद आपके द्वारा अपेक्षित अपेक्षाओं से भिन्न अनुमान लगाएंगे। इसके बजाए, अपने दस्तावेज़ में कुछ जानकारी दें कि आपकी सेवा हुड के तहत क्या कर रही है। हम अभी तक एक मंच पर नहीं हैं जहां हम दुर्भाग्यवश, अपने आंतरिकों के अज्ञेयवादी रहकर, केवल एक बहुत ही पतले इंटरफेस के ज्ञान के माध्यम से संचार कर रहे हैं।

+0

धन्यवाद, यह बहुत उपयोगी था! – Turar

संबंधित मुद्दे