2017-01-09 9 views
6

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

  • केवल का उपयोग कर GraphQL: हमें तेजी लाने के लिए हमारे दृश्यपटल developmentand हमारे एपीआई भविष्य कार्यान्वयन के लिए अधिक लचीलापन प्रदान करता अनुमति देता है क्षण के लिए हम निम्न विकल्प देखें। लेकिन उत्पादों की उच्च मात्रा के माध्यम से हम मूल http कैशिंग क्षमता और हमारे सीडीएन का उपयोग करना चाहते हैं।

  • केवल REST का उपयोग करके: हमें प्रत्येक अनुरोध पर मानक http कैश का उपयोग करने की अनुमति देता है लेकिन प्रत्येक फ्रंटेंड अनुरोध के लिए एक निर्धारित अंतराल की आवश्यकता होती है।

तो मूल रूप से मैं जानना चाहता हूं कि ग्राफक्यूएल की कैशिंग क्षमता आरईएसटी के समान है या नहीं?


प्लस के रूप में हमने इसे संयोजन के बारे में सोचा।

  • दोनों का मेल: इस का कारण यह है कि हम एक बैकएंड कैश जो हमारे बैकएंड-प्रणाली से डेटा कैश किया है विचार उदाहरण के लिए है करने के लिए REST एंडपॉइंट product/1 के पीछे एक उत्पाद JSON है में काम करेगा जो उत्पाद डेटा और सभी विन्यास। फिर यह हमारे बैकएंड कैश में सहेजा जाता है। ग्राफ़क्यूएल का उपयोग फ़ॉन्टेंड डेवलपर्स द्वारा कॉन्फ़िगरेशन भागों को विशिष्ट दृश्य आवश्यकताओं को हल करने के लिए किया जा सकता है (उदा .: उत्पाद/1? क्वेरी = कुछग्राफक्लुक्वायर ')। तो आरईएसटी-एंडपॉइंट सर्वर-कैशिंग और क्लाइंट-कैशिंग के लिए ग्राफ़क्यूएल के लिए है।

क्या यह दृष्टिकोण 'ग्राफक्लुएल' दुनिया में समझ में आता है या यह सिर्फ एक बेकार अमूर्त परत है और इसमें कोई सुधार नहीं आता है?

उत्तर

0

कैशिंग, सर्वर और क्लाइंट पक्ष के लिए कई समाधान हैं। मुझे नहीं लगता कि आरईएसटी का किनारा यहां है ...

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

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

+0

REST निश्चित रूप से _can_ का किनारा है यदि आप HTTP इंटरमीडिएट्स जैसे सीडीएन या अन्य प्रॉक्सी द्वारा स्वचालित कैशिंग पर भरोसा करना चाहते हैं। ग्राफ़क्यूएल के साथ उस काम को करने के लिए इंटरमीडिएट को ग्राफ़क्यूएल को समझने की आवश्यकता होगी और मुझे ऐसा कोई भी पता नहीं है जो करता है। – Evert

1

अपोलो क्लाइंट और सर्वर जैसे ग्राफ़क्यूएल के कुछ कार्यान्वयन में कैश के लिए प्लगइन हैं, और मेरे पास एक प्रोजेक्ट है जो आरईएसटी और ग्राफक्ल को जोड़ती है, इसलिए मैं मेमोरी (रेडिस) में आरईएसटी कॉल कैश कर रहा हूं और ग्राफ़क्ल क्वेरी परिणाम ब्राउज़र में कैश किया गया है अपोलो क्लाइंट द्वारा, यह बहुत अच्छा काम कर रहा है, लेकिन मुझे लगता है कि आपको REST और graphql को गठबंधन करने की आवश्यकता नहीं है जैसे कि आपकी परियोजना नई है, इसलिए मैंने इस कारण को बनाया है कि मेरे पास आरईएसटी एपीआई को मारने और ग्राफक्ल में सभी को बनाने का विकल्प नहीं है, इसलिए फ्रंट-एंड में लाभ प्राप्त करने के लिए मैं केवल REST को ग्राफक्ल के अंदर लपेटता हूं। मेरी सिफारिश है कि आप केवल ग्राफक्ल के साथ आगे बढ़ें और क्वेरी कॉल और क्लाइंट उपभोक्ताओं में कैश तकनीकों को लागू करें।

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