GraphQL क्वेरी बिल्डर
डायनामिक फ़ील्ड ट्री, वेरिएबल, फ़्रैगमेंट और लाइव आउटपुट के साथ GraphQL क्वेरी, म्यूटेशन और सब्सक्रिप्शन को विज़ुअल रूप से बनाएँ।
अपडेट किया गया
GraphQL Query Builder
Visually build GraphQL queries, mutations, and subscriptions with a dynamic field tree, variables, and fragments.
Presets
Operation
Fields
Variables
No variables defined.
Fragments
No fragments defined.
GraphQL Query
Variables JSON
अक्सर पूछे जाने वाले प्रश्न
GraphQL क्वेरी बिल्डर क्या है?
GraphQL क्वेरी बिल्डर एक मुफ़्त ऑनलाइन टूल है जो डायनेमिक फ़ील्ड ट्री, वेरिएबल्स, फ़्रैगमेंट्स और लाइव आउटपुट के साथ GraphQL क्वेरीज़, म्यूटेशन्स और सब्सक्रिप्शन्स को दृश्य रूप से बनाता है। यह पूरी तरह आपके ब्राउज़र में चलता है, बिना किसी इंस्टॉलेशन या साइन-अप के।
कौन-कौन से ऑपरेशन?
Query, Mutation और Subscription। बिल्डर ऑपरेशन प्रकार के अनुसार सिंटैक्स समायोजित करता है।
वेरिएबल्स और फ़्रैगमेंट्स?
Variables सेक्शन में टाइप किए गए वेरिएबल्स ($userId: ID!) परिभाषित करें, उन्हें आर्गुमेंट्स में संदर्भित करें। फ़्रैगमेंट्स किसी टाइप पर पुन: प्रयोज्य फ़ील्ड चयन परिभाषित करते हैं।
क्या यह मुफ़्त है?
हाँ, क्लाइंट-साइड, बिना पंजीकरण और बिना सर्वर के।
क्या इस टूल के साथ मेरा डेटा सुरक्षित है?
बिल्कुल। GraphQL क्वेरी बिल्डर सब कुछ आपके ब्राउज़र में क्लाइंट-साइड पर प्रोसेस करता है। कोई भी डेटा किसी सर्वर पर अपलोड या संग्रहीत नहीं किया जाता। आपकी सामग्री हर समय आपके डिवाइस पर निजी रहती है।
क्या GraphQL क्वेरी बिल्डर मोबाइल डिवाइस पर काम करता है?
हाँ, GraphQL क्वेरी बिल्डर पूरी तरह रिस्पॉन्सिव है और स्मार्टफोन तथा टैबलेट पर काम करता है। आप इसे किसी भी आधुनिक वेब ब्राउज़र वाले डिवाइस पर उपयोग कर सकते हैं, किसी ऐप डाउनलोड की आवश्यकता नहीं।
क्या इस टूल का उपयोग करने के लिए मुझे खाता बनाना होगा?
किसी खाते या पंजीकरण की आवश्यकता नहीं है। बस अपने ब्राउज़र में GraphQL क्वेरी बिल्डर खोलें और तुरंत उपयोग शुरू करें। कोई साइन-अप बाधा या उपयोग प्रतिबंध नहीं है।
यह कौन-कौन सी प्रोग्रामिंग भाषाएँ या फ़ॉर्मेट समर्थित करता है?
GraphQL क्वेरी बिल्डर लोकप्रिय फ़ॉर्मेट और भाषाओं की एक विस्तृत श्रृंखला का समर्थन करता है। समर्थित विकल्पों की पूरी सूची के लिए टूल इंटरफ़ेस देखें।
मैं GraphQL क्वेरी बिल्डर का उपयोग कैसे करूँ?
बस दिए गए फ़ील्ड में अपना इनपुट दर्ज करें, अपनी पसंद के अनुसार सेटिंग्स समायोजित करें, और टूल उसे तुरंत प्रोसेस कर देगा। फिर आप परिणाम को क्लिपबोर्ड पर कॉपी कर सकते हैं या डाउनलोड कर सकते हैं।
कौन-कौन से ब्राउज़र समर्थित हैं?
GraphQL क्वेरी बिल्डर Chrome, Firefox, Safari, Edge और Opera सहित सभी आधुनिक ब्राउज़रों में काम करता है। सर्वोत्तम अनुभव के लिए अपने पसंदीदा ब्राउज़र के नवीनतम संस्करण का उपयोग करें।
GraphQL क्वेरी और म्यूटेशन में क्या फ़र्क़ है?
क्वेरी डेटा को बिना कुछ बदले पढ़ती है — यह सर्वर से खास फ़ील्ड माँगती है और उन्हें वापस पा लेती है, कुछ-कुछ GET रिक्वेस्ट जैसा। म्यूटेशन डेटा लिखता है: यह रिकॉर्ड बनाता है, अपडेट करता है, या मिटाता है, और आमतौर पर प्रभावित ऑब्जेक्ट लौटाता है ताकि आप बदलाव की पुष्टि कर सकें। दोनों में कौन-से फ़ील्ड वापस आएँगे यह चुनने के लिए एक ही सिलेक्शन-सेट सिंटैक्स इस्तेमाल होता है, लेकिन दोनों अलग-अलग ऑपरेशन कीवर्ड (query बनाम mutation) डिक्लेयर करते हैं, और म्यूटेशन लगभग हमेशा इनपुट आर्ग्युमेंट लेते हैं, अक्सर किसी इनपुट ऑब्जेक्ट जैसे टाइप्ड वेरिएबल के रूप में। एक तीसरा प्रकार भी है, subscription, जो रीयल-टाइम अपडेट के लिए कनेक्शन को खुला रखता है। इस बिल्डर में आप पहले ही ऑपरेशन टाइप चुन लेते हैं और यह जनरेट किए गए कीवर्ड व संरचना को उसी के अनुसार एडजस्ट कर देता है, ताकि आप बिना रैपर को हाथ से दोबारा लिखे रीड क्वेरी और राइट म्यूटेशन के बीच स्विच कर सकें।
मैं वैल्यू को हार्डकोड करने की बजाय GraphQL क्वेरी में वेरिएबल कैसे पास करूँ?
हर इनपुट को ऑपरेशन सिग्नेचर में एक नामित वेरिएबल के रूप में डिक्लेयर करें, उसे ID!, Int, या String जैसा कोई GraphQL टाइप दें, फिर उसे डॉलर साइन के साथ किसी आर्ग्युमेंट के भीतर संदर्भित करें — उदाहरण के लिए user(id: $userId)। वैल्यू को अलग से एक JSON ऑब्जेक्ट के रूप में भेजना क्वेरी को दोबारा इस्तेमाल करने लायक बनाता है, आपके क्लाइंट को इसे कैश करने देता है, और उन कोटिंग व एस्केपिंग गलतियों से बचाता है जो स्ट्रिंग में सीधे कच्ची वैल्यू डालने से होती हैं। टाइप के बाद विस्मयादिबोधक चिह्न (!) का मतलब है कि वेरिएबल अनिवार्य है। इस बिल्डर में, Variables सेक्शन में वेरिएबल डिक्लेयर करने पर वे अपने-आप सिग्नेचर में जुड़ जाते हैं, और किसी भी आर्ग्युमेंट में $ से शुरू होने वाली वैल्यू टाइप करते ही उसे वेरिएबल रेफ़रेंस के रूप में पहचान लिया जाता है। यह क्वेरी के साथ-साथ एक तैयार Variables JSON ऑब्जेक्ट भी बना देता है, ताकि आप दोनों को सीधे Postman या अपने API क्लाइंट में डाल सकें।
GraphQL फ़्रैगमेंट क्या है और इसका इस्तेमाल कब करना चाहिए?
फ़्रैगमेंट किसी खास टाइप पर परिभाषित फ़ील्ड का एक नामित, दोबारा इस्तेमाल हो सकने वाला सेट है — उदाहरण के लिए fragment UserFields on User { id name email }। एक ही फ़ील्ड सिलेक्शन को कई जगहों पर दोहराने के बजाय, आप इसे एक बार परिभाषित करते हैं और जहाँ भी ज़रूरत हो वहाँ स्प्रेड कर देते हैं। फ़्रैगमेंट बड़ी क्वेरी को पढ़ने में आसान बनाए रखते हैं, यह सुनिश्चित करते हैं कि रिक्वेस्ट के दो हिस्से एक ही तरह का डेटा माँगें, और स्कीमा में बदलाव आसान बनाते हैं क्योंकि आप फ़ील्ड लिस्ट को सिर्फ़ एक जगह एडिट करते हैं। ये तब खासतौर पर उपयोगी हैं जब कई क्वेरी एक ही ऑब्जेक्ट टाइप लौटाती हों, या जब किसी UI कंपोनेंट को हमेशा वही प्रॉपर्टी चाहिए हों। इस बिल्डर में आप एक फ़्रैगमेंट जोड़ते हैं, उसे नाम और टारगेट टाइप देते हैं, और उसकी फ़ील्ड ट्री उसी तरह बनाते हैं जैसे मुख्य सिलेक्शन बनाते हैं — जनरेट किए गए आउटपुट में फ़्रैगमेंट की परिभाषा शामिल होती है, इसलिए यह तुरंत इस्तेमाल के लिए तैयार रहता है।
GraphQL सिर्फ़ वही फ़ील्ड क्यों लौटाता है जो मैंने माँगे हैं?
GraphQL इस तरह डिज़ाइन किया गया है कि क्लाइंट ठीक-ठीक बताता है कि उसे कौन-से फ़ील्ड चाहिए, और सर्वर सिर्फ़ वही लौटाता है — इससे ज़्यादा कुछ नहीं। यह एक सामान्य REST एंडपॉइंट के उलट है, जो चाहे आप जो भी इस्तेमाल करें, एक तय पेलोड भेजता रहता है। सटीक फ़ील्ड माँगने का मतलब है छोटा रिस्पॉन्स, ऐसे डेटा का कम ओवर-फ़ेचिंग जिसे आप वैसे भी फेंक देंगे, और संबंधित रिकॉर्ड जुटाने के लिए कोई अतिरिक्त राउंड ट्रिप नहीं, क्योंकि आप जुड़े हुए ऑब्जेक्ट को एक ही रिक्वेस्ट में लाने के लिए सब-सिलेक्शन नेस्ट कर सकते हैं। इसकी कीमत यह है कि जो भी फ़ील्ड आपको चाहिए, उसे सिलेक्शन सेट में साफ़-साफ़ नाम देना होता है, और क्वेरी बड़ी होने पर हाथ से यह आसानी से थोड़ा गलत हो सकता है। यह बिल्डर इस स्पष्ट सिलेक्शन को विज़ुअल बना देता है — आप किसी भी गहराई तक फ़ील्ड जोड़ने और नेस्ट करने के लिए क्लिक करते हैं, और यह उसी के अनुरूप सिलेक्शन सेट लिख देता है ताकि संरचना आपके डेटा के आकार को दर्शाए।
prettified और minified GraphQL आउटपुट में क्या फ़र्क़ है?
Prettified आउटपुट कई लाइनों में एक जैसी इंडेंटेशन के साथ फ़ॉर्मेट किया जाता है, ताकि नेस्टेड सिलेक्शन सेट, आर्ग्युमेंट और फ़्रैगमेंट पढ़ने और जाँचने में आसान रहें — जब आप किसी क्वेरी को सोर्स कंट्रोल में कमिट कर रहे हों या टीम के साथ शेयर कर रहे हों, तो यही फ़ॉर्मेट चाहिए होता है। Minified आउटपुट उसी क्वेरी को एक ही लाइन में समेट देता है और अतिरिक्त व्हाइटस्पेस हटा देता है, जो तब काम आता है जब आप क्वेरी स्ट्रिंग को सीधे कोड या किसी कॉन्फ़िगरेशन वैल्यू में एम्बेड करते हैं जहाँ लाइन ब्रेक असुविधाजनक होते हैं। सर्वर के लिए दोनों फ़ंक्शनल रूप से बिल्कुल एक जैसे हैं; बस व्हाइटस्पेस अलग है, इसलिए आप व्यवहार बदले बिना स्वतंत्र रूप से इनके बीच स्विच कर सकते हैं। इस बिल्डर में एक ही टॉगल दोनों व्यू के बीच तुरंत बदल देता है, और किसी भी व्यू से आप क्वेरी कॉपी कर सकते हैं, Variables JSON कॉपी कर सकते हैं, या ऑपरेशन को .graphql फ़ाइल के रूप में डाउनलोड कर सकते हैं।
संबंधित टूल
मुफ़्त API टेस्टर ऑनलाइन
GET, POST, PUT, DELETE अनुरोधों के साथ REST API का परीक्षण करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।
मुफ़्त cURL से कोड कन्वर्टर
cURL कमांड को JavaScript, Python, PHP कोड में बदलें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।
मुफ़्त JSON Schema जनरेटर
अपने JSON डेटा से स्वचालित रूप से JSON Schema बनाएं। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।
मुफ़्त HTTP हेडर पार्सर
अनुरोधों और प्रतिक्रियाओं के HTTP हेडर पार्स और विश्लेषण करें। मुफ़्त, तेज़ और पूरी तरह आपके ब्राउज़र में काम करता है, बिना साइन-अप के।
GraphQL क्वेरी बिल्डर के बारे में
GraphQL क्वेरी बिल्डर एक मुफ़्त विज़ुअल टूल है जिससे आप बिना खुद सिंटैक्स टाइप किए GraphQL ऑपरेशन तैयार कर सकते हैं। आप क्लिक करके क्वेरी बनाते हैं — फ़ील्ड जोड़ना, सब-सिलेक्शन नेस्ट करना, आर्ग्युमेंट लगाना, वेरिएबल डिक्लेयर करना और फ़्रैगमेंट परिभाषित करना — और टूल तुरंत उसके अनुरूप GraphQL स्ट्रिंग लिखकर दे देता है। यह उन डेवलपर्स के लिए है जो किसी GraphQL API को इंटीग्रेट कर रहे हैं, उन QA इंजीनियरों के लिए जो टेस्ट रिक्वेस्ट बना रहे हैं, और किसी भी ऐसे व्यक्ति के लिए जिसे लगभग पता है कि उसे कौन-सा डेटा चाहिए लेकिन जो ब्रेसेज़, कॉमा और आर्ग्युमेंट कोटिंग से खुद जूझना नहीं चाहता।
GraphQL एक क्वेरी लैंग्वेज है जिसमें क्लाइंट ठीक-ठीक बताता है कि उसे कौन-से फ़ील्ड चाहिए, और सर्वर सिर्फ़ वही फ़ील्ड लौटाता है। यही सटीकता इसकी ताकत है, लेकिन इसका सिंटैक्स — नेस्टेड सिलेक्शन सेट, $userId: ID! जैसी टाइप्ड वेरिएबल डिक्लेरेशन, नामित ऑपरेशन, और फ़्रैगमेंट — हाथ से लिखते समय आसानी से थोड़ा गलत हो सकता है। यह बिल्डर एक स्ट्रक्चर्ड फ़ॉर्म से वैध आउटपुट जनरेट करके यह दिक्कत दूर कर देता है।
आप क्वेरी कैसे बनाते हैं
इंटरफ़ेस दो हिस्सों में बंटा है — बाईं तरफ़ बिल्डर और दाईं तरफ़ लाइव आउटपुट। सबसे पहले आप ऑपरेशन टाइप चुनते हैं — Query, Mutation, या Subscription — और चाहें तो उसे नाम भी दे सकते हैं (उदाहरण के लिए, GetUser)। बिल्डर उसी के अनुसार जनरेट किया गया कीवर्ड एडजस्ट कर देता है।
Fields सेक्शन एक डायनामिक ट्री है। हर फ़ील्ड में यह सब हो सकता है:
- रिस्पॉन्स में फ़ील्ड का नाम बदलने के लिए एक alias
- आपके स्कीमा पर मौजूद असली प्रॉपर्टी वाला एक field name
- किसी भी गहराई तक जोड़े जा सकने वाले नेस्टेड sub-fields, ताकि सिलेक्शन सेट आपके डेटा के आकार को दर्शाए
- Arguments, जिनमें से हर एक का नाम, टाइप और वैल्यू होता है —
$से शुरू होने वाली वैल्यू टाइप करते ही बिल्डर उसे अपने-आप वेरिएबल रेफ़रेंस मान लेता है
तीन शुरुआती प्रीसेट — एक सिंगल-रिकॉर्ड User क्वेरी, एक Create म्यूटेशन, और एक कर्सर-पेजिनेटेड लिस्ट क्वेरी — पूरे उदाहरण लोड कर देते हैं जिन्हें आप एडिट कर सकते हैं, और यह किसी आम पैटर्न की सही संरचना देखने का सबसे तेज़ तरीका है।
वेरिएबल और फ़्रैगमेंट
Variables सेक्शन में आप टाइप्ड, दोबारा इस्तेमाल हो सकने वाले इनपुट डिक्लेयर कर सकते हैं। हर वेरिएबल का एक नाम, ID!, Int, या String जैसा एक GraphQL टाइप, और एक वैकल्पिक डिफ़ॉल्ट वैल्यू होती है। बिल्डर इन्हें ऑपरेशन सिग्नेचर में डाल देता है — query GetUser($userId: ID!) — और साथ ही एक अलग Variables JSON ऑब्जेक्ट भी बना देता है, जिसे आप सीधे किसी क्लाइंट, Postman, या अपने API टेस्टिंग फ़्लो में पेस्ट कर सकते हैं।
फ़्रैगमेंट आपको किसी खास टाइप पर फ़ील्ड का एक नामित सेट परिभाषित करने देते हैं (fragment UserFields on User { ... }), ताकि किसी सिलेक्शन को बार-बार दोहराने के बजाय दोबारा इस्तेमाल किया जा सके। एक फ़्रैगमेंट जोड़ें, उसे एक नाम और एक टारगेट टाइप दें, और उसकी फ़ील्ड ट्री उसी तरह बनाएं जैसे आप मुख्य क्वेरी बनाते हैं।
जनरेटर वैल्यू फ़ॉर्मेटिंग भी सही तरीके से संभालता है: इंटीजर और फ़्लोट बिना कोट के लिखे जाते हैं, बूलियन छोटे अक्षरों में होते हैं, ऑब्जेक्ट और ऐरे लिटरल जैसे-के-तैसे रहते हैं, और साधारण स्ट्रिंग को कोट में लपेटा जाता है और उनके भीतर मौजूद कोट को एस्केप किया जाता है — ठीक वैसे ही जैसे कोई GraphQL सर्वर लिटरल आर्ग्युमेंट में उम्मीद करता है।
आउटपुट, एक्सपोर्ट और प्राइवेसी
जैसे-जैसे आप एडिट करते हैं, आउटपुट तुरंत अपडेट होता रहता है। एक टॉगल आपको prettified मल्टी-लाइन फ़ॉर्मेटिंग (पढ़ने में आसान, सोर्स कंट्रोल के लिए तैयार) और minified सिंगल-लाइन आउटपुट (कॉम्पैक्ट, कोड में एम्बेड करने के लिए सुविधाजनक) के बीच स्विच करने देता है। यहाँ से आप क्वेरी कॉपी कर सकते हैं, Variables JSON कॉपी कर सकते हैं, या ऑपरेशन को .graphql फ़ाइल के रूप में डाउनलोड कर सकते हैं। एक स्टेटस लाइन ऑपरेशन टाइप, रूट फ़ील्ड की संख्या, और कितने वेरिएबल व फ़्रैगमेंट इस्तेमाल में हैं, इसका सार बताती है।
सब कुछ पूरी तरह आपके ब्राउज़र में ही चलता है। बिल्डर क्वेरी स्ट्रिंग को लोकल रूप से बनाता है, बिना किसी नेटवर्क कॉल के, इसलिए आपके फ़ील्ड नाम, स्कीमा की जानकारी, और कोई भी सैंपल वैल्यू कभी आपके डिवाइस से बाहर नहीं जाती — यह तब उपयोगी है जब आप किसी अनरिलीज़्ड इंटरनल API के लिए स्केच कर रहे हों। इसके लिए कोई अकाउंट नहीं चाहिए, कोई इंस्टॉलेशन नहीं चाहिए, और इस्तेमाल की कोई सीमा नहीं है, और चूँकि यह काम क्लाइंट-साइड होता है, इसलिए पेज ऑफ़लाइन लोड होने के बाद भी यह काम करता रहता है।
क्वेरी जनरेट करना शुरू करने के लिए ऊपर कोई प्रीसेट चुनें या अपना पहला फ़ील्ड जोड़ें।