रूटवैल्यू शीर्ष-स्तरीय रिज़ॉल्यूशन का पहला तर्क है, और यह अभी भी उस फ़ंक्शन में उपयोगी है।
रूट क्वेरी/उत्परिवर्तन प्रकार तकनीकी रूप से स्कीमा में किसी अन्य क्षेत्र का हल प्रकार भी हो सकता है। यह अजीब होगा अगर गैर-रूट प्रकार के माध्यम से इसे एक्सेस करते समय उस समाधान फ़ंक्शन को इनपुट मान प्रदान करना संभव था।
type Mutation {
someMutationField: Query
}
type Query {
someField: String
}
schema {
query: Query
mutation: Mutation
}
एक और rootValue रखने के लिए कारण: यहाँ एक उदाहरण है यह दो GraphQL उप स्कीमा एक बड़ा स्कीमा, जहां उप स्कीमा अलग सर्वर पर निवास में एक साथ विलय करने के लिए इस्तेमाल किया जा सकता। ऐसा करने में सक्षम होने के लिए, आपको रूट मान को क्वेरी के साथ शीर्ष-स्तरीय समाधान फ़ंक्शन में पास करने का एक तरीका होना चाहिए। एक्सप्रेस-ग्राफ़क्ल के लिए उपयोग किया जाने वाला वर्तमान HTTP परिवहन आपको ऐसा करने नहीं देता है, लेकिन इसे आसानी से जोड़ा जा सकता है।
भले ही मैंने किसी को भी इस तरह से रूट वैल्यू का उपयोग नहीं देखा है, मुझे लगता है कि यह संभव है कि जल्द या बाद में कोई इसका उपयोग करेगा, या इसके लिए कुछ अन्य उपयोग ढूंढें, शायद यही कारण है कि यह नहीं था GraphQL-JS से हटा दिया गया।
मैं भी उलझन में हूं, लेकिन मुझे लगता है कि 'संदर्भ' मुख्य रूप से सामान्य लेख से संबंधित डेटा के लिए है, और' rootValue' अन्य ऐप विशिष्ट डेटा के लिए है। – Joon
चूंकि लगभग हर ऐप को ऑथ आधारित एक्सेस कंट्रोल की आवश्यकता होती है, मुझे लगता है कि उन्होंने इसे जानकारी के तर्क से हर बार इसे नष्ट करने के बजाय सुविधा के लिए तीसरे तर्क के रूप में डालने का फैसला किया है। – Joon
'rootValue' केवल शीर्ष-स्तरीय रिज़ॉल्यूशन को पास किया गया है जबकि प्रत्येक संदर्भकर्ता में' संदर्भ' उपलब्ध है। लेकिन मुझे यकीन नहीं है कि वह भेद क्यों है या कैसे 'rootValue' अब उपयोगी है। –