JSON से GraphQL स्कीमा (SDL)

JSON से GraphQL SDL ऑब्जेक्ट टाइप बनाएँ: Int बनाम Float, non-null चिह्न, लिस्ट टाइप और आपके नमूने से अनुमानित नेस्टेड टाइप। मुफ़्त और ब्राउज़र में।

non-null फ़ील्ड पर "!" लगता है। 32 बिट से बड़े पूर्णांक Float बनते हैं; मिश्रित या केवल null मान कस्टम JSON स्केलर इस्तेमाल करते हैं।

पूरी तरह आपके ब्राउज़र में चलता है। आपका डेटा कभी अपलोड नहीं होता।

संबंधित टूल्स

सभी देखें

JSON से GraphQL क्या है?

JSON नमूने से GraphQL स्कीमा डेफ़िनिशन लैंग्वेज (SDL) की type घोषणाएँ बनाएँ। ज़रूरी मानों को non-null चिह्न ! मिलता है, ऐरे लिस्ट टाइप बनते हैं और नेस्टेड ऑब्जेक्ट अलग ऑब्जेक्ट टाइप बनते हैं।

JSON से GraphQL का उपयोग कैसे करें

  1. JSON इनपुट में JSON नमूना पेस्ट करें (या उदाहरण लोड करें / फ़ाइल खोलें दबाएँ)।
  2. रूट टाइप का नाम तय करें (डिफ़ॉल्ट Root)।
  3. बना हुआ GraphQL कोड कॉपी करें या फ़ाइल के रूप में डाउनलोड करें।

उदाहरण

इनपुट
{"id":1,"name":"A","tags":["x"]}
आउटपुट
type Root {
  id: Int!
  name: String!
  tags: [String!]!
}

JSON से GraphQL का उपयोग कब करें

मौजूदा JSON/REST सेवा को लपेटने वाली GraphQL API का स्कीमा खाका बनाने के लिए इसका उपयोग करें। यह सिर्फ़ आउटपुट टाइप बनाता है; input टाइप, query, mutation और resolver अब भी खुद लिखने होंगे।

JSON से GraphQL कैसे काम करता है

नमूने को रिकर्सिव ढंग से पढ़ा जाता है और हर स्थान उन टाइप को इकट्ठा करता है जो उसने देखे। ऑब्जेक्ट के ऐरे एक टाइप में मिला दिए जाते हैं: जो कुंजी कुछ एलिमेंट में नहीं है वह वैकल्पिक बन जाती है, जो कुंजी कहीं null है वह nullable बन जाती है, दशमलव के साथ मिले पूर्णांक फ़्लोटिंग-पॉइंट टाइप बनते हैं, और बाकी हर मिश्रित टाइप डायनैमिक टाइप पर चला जाता है। नेस्टेड ऑब्जेक्ट अपने नामित टाइप बनते हैं (कुंजी का PascalCase, ऐरे कुंजियों का एकवचन: orders → Order), और नाम टकराने पर अंक जुड़ते हैं। GraphQL आउटपुट पूर्णांक को Int से मैप करता है (या Float जब कोई मान 32 बिट से ऊपर हो, क्योंकि GraphQL Int 32-बिट है), दशमलव को Float, स्ट्रिंग को String और बूलियन को Boolean। नमूने में null या गायब मान nullable होते हैं (! नहीं)। मिश्रित या सिर्फ़-null मान कस्टम JSON स्केलर इस्तेमाल करते हैं, जो ज़रूरत पड़ने पर शीर्ष पर घोषित होता है। जो फ़ील्ड नाम मान्य GraphQL नाम नहीं हैं वे camelCase में बदले जाते हैं।

सामान्य उपयोग मामले

  • REST API के ऊपर GraphQL गेटवे के ऑब्जेक्ट टाइप का मसौदा बनाना
  • SDL में JSON डेटा के आकार का दस्तावेज़ बनाना
  • नमूना डेटा से schema-first API डिज़ाइन शुरू करना
  • REST पेलोड की मौजूदा GraphQL स्कीमा से तुलना करना

अक्सर पूछे जाने वाले प्रश्न

ID का टाइप Int क्यों है, ID क्यों नहीं?

नमूना सिर्फ़ एक संख्या दिखाता है। अगर फ़ील्ड आइडेंटिफ़ायर है तो उसे ID! कर दें; टूल अर्थ नहीं जान सकता।

JSON स्केलर क्या है?

एक कस्टम स्केलर जो उन मानों के लिए है जिनका टाइप बदलता रहता है। आपके सर्वर को उसे परिभाषित करना होगा, जैसे graphql-scalars से।

बड़े पूर्णांकों के लिए Float क्यों?

GraphQL Int 32-बिट signed मानों तक सीमित है; बड़ी संख्याएँ अस्वीकार हो जातीं, इसलिए उन्हें Float पर मैप किया जाता है (या कस्टम BigInt स्केलर इस्तेमाल करें)।

और श्रेणियाँ देखें