GraphQL.js JavaScript (Node.js) पूर्ण गाइड: उदाहरण और सेटअप

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

GraphQL.js JavaScript (Node.js) के लिए: पूर्ण गाइड

1. यह क्या है और इसकी आवश्यकता क्यों है?

GraphQL.js, JavaScript में GraphQL स्पेसिफिकेशन का एक रेफरेंस इम्प्लीमेंटेशन है। यह सर्वर-साइड (Node.js) और ब्राउज़र में GraphQL क्वेरी बनाने, निष्पादित करने और मान्य करने के लिए टूल्स का एक पूरा सेट प्रदान करता है। REST API के विपरीत, जहां हर एंडपॉइंट एक फिक्स्ड डेटा स्ट्रक्चर लौटाता है, GraphQL क्लाइंट को केवल वही डेटा मांगने की अनुमति देता है जिसकी उसे जरूरत है, बिना किसी अतिरिक्त डेटा के। यह over-fetching (अतिरिक्त डेटा प्राप्त करना) और under-fetching (डेटा की कमी) की समस्या को हल करता है, जो मोबाइल ऐप्स और जटिल वेब इंटरफेस के प्रदर्शन के लिए महत्वपूर्ण है।

GraphQL.js लाइब्रेरी, JavaScript इकोसिस्टम में सभी लोकप्रिय GraphQL फ्रेमवर्क (जैसे Apollo Server, Express-GraphQL, Yoga) की नींव है। यह क्वेरी पार्स करने, उन्हें मान्य करने, रिज़ॉल्वर निष्पादित करने और स्पेसिफिकेशन के अनुसार प्रतिक्रिया बनाने का भारी काम संभालती है। सीधे GraphQL.js का उपयोग करके, आपको क्वेरी प्रोसेसिंग पर पूर्ण नियंत्रण मिलता है, जो कस्टम मिडलवेयर, टेस्टिंग टूल्स या गैर-मानक डेटा स्रोतों के साथ एकीकरण बनाते समय विशेष रूप से उपयोगी है।

GraphQL.js के मुख्य लाभों में शामिल हैं: सख्त स्कीमा टाइपिंग, स्वचालित डॉक्यूमेंटेशन जनरेशन (Introspection Query के माध्यम से), एक ही क्वेरी में कई स्रोतों (डेटाबेस, REST API, माइक्रोसर्विसेज) से डेटा को प्रभावी ढंग से संयोजित करने की क्षमता, और त्रुटियों और पेजिनेशन को संभालने के लिए अंतर्निहित तंत्र। यह लाइब्रेरी आधुनिक, स्केलेबल और लचीले API बनाने के लिए अपरिहार्य है।

2. इंस्टॉलेशन

लाइब्रेरी को npm (Node Package Manager) पैकेज मैनेजर के माध्यम से इंस्टॉल किया जाता है। सुनिश्चित करें कि आपके पास Node.js वर्जन 12 या उससे ऊपर इंस्टॉल है।

npm install graphql

ES-मॉड्यूल सपोर्ट वाले प्रोजेक्ट में (package.json में type: "module") फंक्शन को इस प्रकार इम्पोर्ट करें:

import { graphql, buildSchema } from 'graphql';

CommonJS (Node.js में मानक तरीका) के लिए:

const { graphql, buildSchema } = require('graphql');

3. त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण

नीचे एक सबसे सरल सर्वर दिया गया है जो GraphQL क्वेरी प्राप्त करता है और अभिवादन लौटाता है। यह उदाहरण लाइब्रेरी के मूल को दर्शाता है: स्कीमा परिभाषा, रिज़ॉल्वर और क्वेरी निष्पादन।

const { graphql, buildSchema } = require('graphql');

// 1. स्कीमा परिभाषित करें (Schema Definition Language - SDL)
const schema = buildSchema(`
  type Query {
    hello: String
  }
`);

// 2. रूट रिज़ॉल्वर परिभाषित करें
const rootValue = {
  hello: () => {
    return 'नमस्ते, GraphQL.js!';
  },
};

// 3. क्वेरी निष्पादित करें
const query = '{ hello }';

graphql({
  schema,
  source: query,
  rootValue,
}).then((response) => {
  console.log(JSON.stringify(response, null, 2));
  // आउटपुट: { "data": { "hello": "नमस्ते, GraphQL.js!" } }
});

4. मुख्य विधियाँ/फंक्शन/क्लास

4.1. buildSchema(schemaString: string): GraphQLSchema

यह क्या करता है: GraphQL स्कीमा भाषा (SDL) में लिखी गई स्ट्रिंग को पार्स करता है और GraphQLSchema ऑब्जेक्ट बनाता है। प्रोग्रामेटिक कंस्ट्रक्टर के उपयोग के बिना स्कीमा परिभाषित करने का यह सबसे तेज़ तरीका है।

const { buildSchema } = require('graphql');

const schema = buildSchema(`
  type Query {
    user(id: ID!): User
  }
  type User {
    id: ID
    name: String
  }
`);

4.2. graphql(args: GraphQLArgs): Promise<GraphQLResult>

यह क्या करता है: GraphQL क्वेरी निष्पादित करने का मुख्य फंक्शन। यह पैरामीटर (स्कीमा, क्वेरी स्ट्रिंग, रूट वैल्यू, आदि) वाला एक ऑब्जेक्ट लेता है और परिणाम लौटाता है।

const { graphql, buildSchema } = require('graphql');

const schema = buildSchema(`
  type Query {
    greet(name: String!): String
  }
`);

const rootValue = {
  greet: ({ name }) => `नमस्ते, ${name}!`,
};

graphql({
  schema,
  source: '{ greet(name: "राहुल") }',
  rootValue,
}).then(console.log);
// आउटपुट: { data: { greet: 'नमस्ते, राहुल!' } }

अनुशंसाएँ