graphql ट्यूटोरियल
ग्राफिकल के साथ शुरुआत करना
खोज…
टिप्पणियों
GraphQL एपीआई के लिए एक क्वेरी भाषा है और आपके मौजूदा डेटा के साथ उन प्रश्नों को पूरा करने के लिए एक रनटाइम है। GraphQL आपके एपीआई में डेटा का एक पूर्ण और समझने योग्य विवरण प्रदान करता है, ग्राहकों को वास्तव में यह पूछने की शक्ति देता है कि उन्हें क्या चाहिए और अधिक कुछ नहीं, समय पर एपीआई को विकसित करना आसान बनाता है, और शक्तिशाली डेवलपर टूल को सक्षम करता है।
मुझे ग्राफ़कॉल का उपयोग कब करना चाहिए?
GraphQL का इरादा किसी भी तरह के अनुप्रयोग के लिए HTTP एपीआई से बाहर की ओर का सामना करना पड़ रहा है, लेकिन यह सबसे शक्तिशाली है जब डेटा को अत्यधिक परस्पर संग्रह के साथ सामान्यीकृत किया जाता है। टेबल्स | नोड्स GraphQL क्वेरी लैंग्वेज (GQL) को एक बहुत ही सहज और लचीले तरीके से परस्पर डेटा को प्रोजेक्ट करने के लिए डिज़ाइन किया गया है।
क्रियान्वयन
GraphQL ही एक युक्ति है और इसे कई विभिन्न प्रोग्रामिंग भाषाओं द्वारा कार्यान्वित किया जाता है। ये सबसे लोकप्रिय समर्थित भाषाएं हैं
- GraphQL.js
- graphql-माणिक
- ग्राफीन (पायथन)
- संगरिया (स्काला)
- graphql-जावा
- ग्रेफेल-क्लज (क्लोजर)
- graphql-जाने
- graphql-php
- ग्राफकल-डॉटनेट (C # / .Net)
- फोड़ा (अमृत)
ग्राहक पुस्तकालय
क्लाइंट साइड से रनिंग क्वेरी किसी भी HTTP क्लाइंट के साथ की जा सकती है लेकिन क्लाइंट साइड लाइब्रेरी बहुत फायदेमंद हो सकती है।
देव उपकरण
- graphiql / ˈɡrafək (l) l / - एक इंटरएक्टिव इन-ब्राउज़र ग्राफकॉल आईडीई।
- libgraphqlparser - C और C ++ API के साथ C ++ में एक ग्राफक्यूएल क्वेरी भाषा पार्सर।
- GraphQL भाषा सेवा - IDEs (डायग्नोस्टिक्स, स्वतः पूर्ण आदि) के लिए GraphQL भाषा सेवाओं के निर्माण के लिए एक इंटरफ़ेस।
संस्करण
संस्करण | रिलीज़ की तारीख |
---|---|
v0.5.0 | 2016/04/08 |
v0.6.0 | 2016/05/10 |
v0.6.1 | 2016/07/07 |
v0.6.2 | 2016/07/21 |
v0.7.0 | 2016/08/26 |
v0.7.1 | 2016/09/29 |
v0.7.2 | 2016/10/10 |
v0.8.0 | 2016/11/10 |
v0.8.1 | 2016/11/11 |
v0.8.2 | 2016/11/16 |
सर्वर स्थापना और कार्यान्वयन
GraphQL.js
GraphQL.js , GraphQL के लिए एक जावास्क्रिप्ट संदर्भ कार्यान्वयन है। आप इसे npm के माध्यम से स्थापित कर सकते हैं:
- यदि आपने ऐसा पहले से नहीं किया है तो npm को अपने प्रोजेक्ट में आरम्भ करें:
npm init
- Npm से ग्राफ़कॉल.जैस स्थापित करें:
npm install --save graphql
उदाहरण सर्वर
var { graphql, buildSchema } = require('graphql');
// Construct a schema, using GraphQL schema language
var schema = buildSchema(`
type Query {
hello: String
}
`);
// The root provides a resolver function for each API endpoint
var root = {
hello: () => {
return 'Hello world!';
},
};
// Run the GraphQL query '{ hello }' and print out the response
graphql(schema, '{ hello }', root).then((response) => {
console.log(response);
});
सर्वर मिडलवेयर अल्टरनेटिव्स
ग्राफक्लाइन क्वेरी लैंग्वेज (GQL)
प्रत्येक डेटा संसाधन के लिए URL एंडपॉइंट्स को परिभाषित करने के बजाय, ग्राफक्लाइन में आप एक सिंगल एंडपॉइंट को परिभाषित करते हैं जो ग्राफकॉल प्रश्नों को स्वीकार करता है। पारंपरिक डेटाबेस क्वेरी भाषाओं के विपरीत, GraphQL क्वेरी भाषा (GQL) एक रूट स्तर क्वेरी द्वारा लौटाए गए डेटा का एक प्रक्षेपण है। GraphQL स्कीमा डेटा मॉडल और रूट स्तर के प्रश्नों और म्यूटेशन को परिभाषित करेगा। GQL उन प्रश्नों को निष्पादित करता है और परिभाषित करता है कि क्या डेटा वापस करना है।
स्टार वार्स स्कीमा से ऑल फिल्म टाइटल के लिए प्रश्न
स्टार वार्स फिल्म "ए न्यू होप" के लिए ग्रह निवासियों के लिए प्रश्न
ध्यान दें कि रूट क्वेरी film()
फिल्म "ए न्यू होप" के आईडी पैरामीटर में कैसे लगती है और जीक्यूएल से प्रोजेक्शन शीर्षक, फिल्म से जुड़े ग्रहों, और फिर ग्रहों के निवासी नाम देता है। GraphQL में क्वेरी करने के साथ प्रयोग करने के लिए स्टार वार्स ग्राफिक्वेल साइट देखें।
स्कीमा परिभाषा
GraphQL में स्कीमा रूट निष्पादन क्वेरी और म्यूटेशन के साथ-साथ आपके डेटा के प्रकारों को परिभाषित करता है।
स्कीमा ऑब्जेक्ट प्रकार
Person
प्रकार के दो क्षेत्र हैं, एक मानक स्केलर प्रकार है और दूसरा अन्य व्यक्ति प्रकारों की सूची में एक संबंध दर्शाता है जो 'मित्र' हैं। अन्य प्रकारों को जोड़ना वही है जो ग्राफकॉल को इतना शक्तिशाली बनाता है। अब GraphQL क्वेरी लैंग्वेज (GQL) में, क्लाइंट बिना किसी अतिरिक्त कोड या उन्नत क्वेरी के दोस्तों के ग्राफ को आगे बढ़ा सकता है।
type Person {
id: ID
name: String
friends: [Person]
}
स्कीमा क्वेरी
वह person
आईडी है जिसके द्वारा किसी person
क्वेरी दिखाई देती है। यह GQL का उपयोग करने वाले ग्राहकों के लिए आपके डेटा का प्रवेश बिंदु है।
type Query {
person(id: ID!): Person
}
क्वेरी निक के फ्रेंड्स फ्रेंड्स
अब जब हमारे पास एक व्यक्ति प्रकार है और एक व्यक्ति रूट क्वेरी है, तो हम एक व्यक्ति को देख सकते हैं और अलगाव के कई डिग्री के रूप में हम व्यक्ति के दोस्तों के नेटवर्क को चाहते हैं।
query {
person(id: 'nick'){
id
name
friends{
id
name
friends{
id
name
friends{
id
name
}
}
}
}
}