2012-10-06 30 views
6

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

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

उत्तर

5

आपको हाइपर्मियाडिया बाधा की आवश्यकता के बारे में गुमराह किया जा रहा है। ऐसा कुछ भी नहीं है जो कहता है कि आप मूल वस्तु के प्रतिनिधित्व में अपने बच्चे की वस्तुओं से जानकारी शामिल नहीं कर सकते हैं। वास्तव में यह वास्तव में Hal (एक हाइपर्मियाडिया प्रकार) को सक्षम करने के लिए डिज़ाइन किया गया था।

+0

के .. धन्यवाद! लेकिन व्यावहारिक रूप से, क्या आपको वास्तव में दर्द होता है यदि आपको बहुत अधिक कॉल करना पड़ता है? –

+1

@ Raze2dust आपको अधिकतर लिंक मिलेंगे जिन्हें आपको अनावश्यक रूप से पालन करना होगा सुरक्षित रूप से सुरक्षित रूप से कैश किया जा सकता है। इसलिए, हालांकि यह बहुत सी HTTP कॉल की तरह लगता है, अधिकांश नेटवर्क राउंड ट्रिप को अनुकूलित किया जा सकता है। बाल संसाधनों के मूल भागों में एम्बेडिंग भागों के साथ, आप एक बहुत ही नेटवर्क कुशल एपीआई बना सकते हैं। –

+0

यद्यपि आपके कैचिबिलिटी के प्रभाव हैं, एचएएल के एम्बेड का उपयोग करते हैं जैसे कि वेनिला http कैश का उपयोग करने में सक्षम नहीं है। या यदि आप (एम्बेड को अनदेखा कर सकते हैं), तो आप प्रभावी रूप से कैश का उपयोग नहीं कर रहे हैं। – dietbuddha