GraphQL में "किनारों" और "नोड" का अर्थ क्या है?


100

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


1
कनेक्शन, किनारों और नोड्स मुख्य रूप से रिले के संदर्भ में उपयोग की जाने वाली शब्दावली है, जो ग्राफक्यूएल क्लाइंट है। अधिक जानकारी इस FAQ में पाई जा सकती है ।
मार्कटनी

2
बस स्पष्ट करने के लिए: कनेक्शन रिले-विशिष्ट चीज नहीं हैं। इन-
डीप

इसके परिणामों की लंबी सूची के लिए पेजिंग प्रदान करने का एक मानक तरीका है। किसी क्रियान्वयन से बंधे नहीं।
मैट

जवाबों:


64

आइए सरल शब्दों में संक्षिप्त परिचय के साथ शुरू करें


GraphQl रिले विनिर्देशों

  • एक वस्तु को फिर से भरने के लिए तंत्र
  • कनेक्शन के माध्यम से पृष्ठ का वर्णन कैसे करें
  • उन्हें अनुमान लगाने के लिए उत्परिवर्तन के आसपास संरचना

सम्बन्ध:

  • एक कनेक्शन मेटाडाटा जैसी वस्तुओं का एक संग्रह है edges, जैसे pageInfo...
  • pageInfo में शामिल होंगे hasNextPage, hasPreviousPage, startCursor,endCursor

    • hasNextPage हमें बताएंगे कि क्या अधिक किनारे उपलब्ध हैं, या यदि हम इस कनेक्शन के अंत तक पहुंच गए हैं।
  • अभिलेखों की सरणी: किनारों

    • किनारों आपको अपने डेटा (नोड) का उपयोग करने के लिए लचीलापन प्रदान करेंगे
    • किनारों को अंकुरण के लिए मदद मिलेगी, वहाँ ग्राफिकल है GraphQLListलेकिन कोई कार्यक्षमता नहीं है जैसे कि अंकुरण , केवल ऑब्जेक्ट्स ( मॉडल ) के साथ
  • प्रत्येक किनारे पर है

    • a node: रिकॉर्ड या डेटा
    • a cursor: बेस 64 एनकोडिंग स्ट्रिंग को पैगेशन के साथ रिले में मदद करता है

https://facebook.github.io/relay/graphql/connections.htm

नोड:

  • आप रिले का उपयोग करके दिखाने के लिए आवश्यक नोड्स की संख्या निर्धारित कर सकते हैं connectionArgs(first, last, after, before)

रिले पेजिनेशन के रूप में काम करता है

  • संग्रह में सभी ऑब्जेक्ट्स को प्राप्त करता है और first/lastएक्स रिकॉर्ड के आधार पर एक स्लाइस लौटाता है , कनेक्शन के माध्यम से उपयोग किया जाता है

  • after/before ग्राफ से सर्वर से संकेत मिलता है कि नोड से कर्सर का उपयोग करके आवश्यक टुकड़ा (डेटा) की संख्या

वहाँ कई और अधिक चीजों की तरह विचार करने के लिए कर रहे हैं nodeDefinitions, globalFieldId,nodeInterfaces

https://github.com/graphql/graphql-relay-js#object-identification


17
मुझे लगता है कि इस उत्तर का अधिकार है, लेकिन इसमें कई गलत धारणाएं हैं। यह लेख ग्राफ़िकल कनेक्शन के पीछे तर्क को बहुत अच्छी तरह से
समझाता है

6
आपको गलत धारणाएं कहां मिलती हैं, यह सिर्फ संक्षिप्त जानकारी है, अगर आपको कोई गलत धारणा मिली है, तो आप इसे बेहतर बनाने के लिए इसे हमेशा सुधार सकते हैं
p0k8_

क्या मैं ग्राफ़िकल यूआई के माध्यम से इन निर्माणों के साथ काम कर सकता हूं ? उदाहरण के लिए hasNextPage , या वे केवल रिले के साथ JS के माध्यम से उपलब्ध हैं?
Ska

हाँ, आप ग्राफिकल-रिले
p0k8_

नहीं each node will have a cursor, बल्कि each edge will have a cursor, देखें कि blog.apollographql.com/…
हवा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.