2016-04-21 8 views
5

मैं GraphQL के साथ प्रयोग कर रहा हूँ GraphQL म्यूटेशन के लिए इस्तेमाल करते हैं और समझ पता है कि कैसे क्या जड़ मूल्य प्रदान करने के लिए जब एक उत्परिवर्तन के बारे में प्रदर्शन किया जा रहा है मदद की जरूरत करने के लिए तय करने के लिए।कैसे क्या जड़ मूल्य

कंक्रीट उदाहरण: आप वर्तमान में लॉग इन किए गए उपयोगकर्ता का उपयोगकर्ता नाम अपडेट करना चाहते हैं। उत्परिवर्तन इस तरह दिखता है:

mutation TestMutation { 
     updateMyUsername(newName: "CoolName") { 
         username } 
} 

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

यह शायद आम बात बजाय URL या अनुरोध शरीर में कुछ अतिरिक्त पैरामीटर प्रदान करने के लिए आवेदन अधिक संदर्भ प्रदान करने है?

उत्तर

5

यह URL में और अधिक डेटा शामिल करने के लिए आम नहीं है, लेकिन जब से प्रत्येक उत्परिवर्तन एक समारोह के द्वारा समर्थित है, तो आप आप सिर्फ समारोह में इस परिभाषित कर सकते हैं जैसा कि इसके नाम पार्स करने के लिए की जरूरत नहीं है,।

म्यूटेशन हमेशा से रहे हैं के बाद से शीर्ष स्तर, उनकी जड़ वस्तु हमेशा शीर्ष स्तर जड़ वस्तु हो जाएगा। यदि आपको किसी भिन्न ऑब्जेक्ट तक पहुंच की आवश्यकता है, तो आपको यह सुनिश्चित करने की आवश्यकता है कि आपने इसे

वर्तमान में लॉग इन किए गए उपयोगकर्ता का ट्रैक रखने के लिए, context देखें, ग्राफ़क्यूएल चलाने के लिए प्रारंभिक तर्कों में से एक क्वेरी और प्रत्येक संकल्प समारोह में प्रदान की जाती है। लॉग इन उपयोगकर्ता का ट्रैक रखने के लिए अक्सर संदर्भ का उपयोग किया जाता है।

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

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