2013-10-05 25 views
7

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

+0

यू REST API का पक्ष पर परिवर्तन कर सकते हैं? –

+0

@ जुनेड अहसान जो असंभव प्रतीत होता है। चूंकि कुछ एपीआई ओपी उल्लेख एफबी ट्वें आदि हैं। – Santosh

+0

@ सैंटोश ओह मुझे याद आया, बुरा बुरा –

उत्तर

1

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

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

9

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

सामान्य रूप से मैं निम्नलिखित दिशानिर्देशों का सुझाव देता हूं जो आपको बेहतर एप्लिकेशन के साथ आने में मदद करेंगे।

  1. अंगूठे का नियम संभव के रूप में के रूप में कुछ API कॉल करने के लिए है।
  2. कम नेटवर्क कॉल (एपीआई कॉल के परिणामस्वरूप) बनाना यह दर्शाता है कि डिवाइस रेडियो (जिसका उपयोग हवा पर सर्वर के साथ संवाद करने के लिए किया जाता है) कम बार उपयोग किया जाएगा और इसलिए कम बिजली की आवश्यकता होगी।
  3. अब, कम संख्या में कॉल करना हमेशा एक विकल्प नहीं हो सकता है। तो सार्वजनिक एपीआई दस्तावेज सावधानी से अध्ययन करें और सुनिश्चित करें कि आपको आवश्यक एपीआई के सभी विवरण पता हैं।
  4. उदाहरण के लिए, एक एपीआई हो सकती है जो इसके पहचानकर्ता को पास करने पर एक इकाई का विवरण देती है। अगर आपको 5 ऐसी इकाइयों के विवरण की आवश्यकता है तो एक एपीआई होना चाहिए जो आईडी का एक गुच्छा लेता है और सभी विवरण एक बार में देता है। इस तरह आप एकाधिक कॉल सहेजते हैं।
  5. कैशिंग एपीआई कॉल की संख्या को कम करने का बहुत प्रभावी तरीका है। तो सर्वर से प्राप्त किसी भी डेटा की तलाश करें जिसे कुछ अवधि के लिए कैश किया जा सकता है।
  6. ध्यान दें कि कैशिंग को अधिक मेमोरी की आवश्यकता होगी और इसलिए सुनिश्चित करें कि आप इसके निहितार्थ से अवगत हैं और तदनुसार कैश करने की आवश्यकता वाले डेटा की मात्रा तय करें।
  7. स्मृति के अलावा, डेटा डिस्क पर भी कैश किया जा सकता है, जो स्मृति उपयोग को कम करने में मदद करेगा। सुनिश्चित नहीं है कि आप एंड्रॉइड का उपयोग कर रहे हैं, कृपया refer to this related post देखें।

ओर टिप्पणी पर, आप लिंक है जो एक मोबाइल अनुप्रयोग विकास के लिए सामान्य दिशा निर्देशों की पेशकश निम्नलिखित देख सकते हैं।

  1. Make your application blazing fast
  2. Optimizing a Mobile App for Mobile network

कृपया ध्यान दें कि इन सामान्य दिशानिर्देश हैं। कुछ आपके विशेष उपयोग मामले पर लागू नहीं हो सकते हैं।

-2

आप jQuery का उपयोग कर सकते हैं, तो मैं सुझाव है कि आप एक बार देख मेरी प्लगइन jQuery Chain जो मदद कर सकता है async कॉल अनुक्रमिक बनाने की है।

0

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

अपनी आवश्यकताओं को आप पूरी तरह जबकि सभी फिल्टर लागू नहीं है क्लाइंट के बजाय सर्वर से विशिष्ट ग्राहक के अनुरोध को संभालने के लिए एक API कॉल करने के लिए है, तो आरपीसी जाना अपना रास्ता है, जो विशिष्ट का ख्याल रखेंगे हो जाएगा सर्वर से अन्य माइक्रो-सर्विसेज (एसओए।)

वास्तविक प्रश्न यह है कि यदि आप अपने आरईएसटी एपीआई को एकीकृत और सुसंगत रखना चाहते हैं तो आपके पास ऐसे अनुरोध को संभालने का सर्वर होगा। ग्राहक अपने अद्वितीय तर्क लागू करते हैं। आरईएसटी एपीआई सर्वर को क्लाइंट को एपीआई कॉल की संख्या को कम करने के सर्वोत्तम तरीके के क्लाइंट को मार्गदर्शन करने के लिए हाइपरलिंक्स/हाइपरमीडिया प्रदान करना चाहिए चाहे फ़िल्टरिंग या किसी अन्य इकाई/संसाधन द्वारा।

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