Node.js पर GraphQL: graphql-http लाइब्रेरी के लिए पूर्ण गाइड

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

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

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

GraphQL जावास्क्रिप्ट लाइब्रेरी (Node.js): graphql-http



GraphQL Facebook द्वारा विकसित API के लिए एक क्वेरी भाषा है, जो क्लाइंट को केवल वही डेटा मांगने की अनुमति देती है जिसकी उन्हें आवश्यकता होती है। Node.js इकोसिस्टम में, GraphQL सर्वर को लागू करने के लिए प्रमुख लाइब्रेरी में से एक graphql-http है। यह एक हल्का लेकिन शक्तिशाली टूल है जो न्यूनतम ओवरहेड के साथ उच्च-प्रदर्शन API बनाने की अनुमति देता है। Apollo Server जैसे भारी समाधानों के विपरीत, graphql-http लचीलापन और HTTP हैंडलर पर पूर्ण नियंत्रण प्रदान करता है।



graphql-http क्या है?



graphql-http GraphQL समुदाय की एक आधिकारिक लाइब्रेरी है, जो किसी भी Node.js HTTP सर्वर से GraphQL को जोड़ने का एक सरल तरीका प्रदान करती है। यह किसी विशिष्ट फ्रेमवर्क (Express, Koa, Fastify आदि) पर निर्भर नहीं करती है, जो इसे एक सार्वभौमिक विकल्प बनाता है। लाइब्रेरी का मुख्य कार्य इनकमिंग HTTP अनुरोध को लेना, उसे पार्स करना, GraphQL क्वेरी को निष्पादित करना और एक संरचित प्रतिक्रिया वापस करना है।



इंस्टॉलेशन और सेटअप



शुरू करने के लिए, npm के माध्यम से लाइब्रेरी स्थापित करें:



npm install graphql-http graphql


शुद्ध Node.js पर एक न्यूनतम सर्वर उदाहरण (Express के बिना):



const http = require('http');const { createHandler } = require('graphql-http');const { buildSchema } = require('graphql');

// स्कीमा परिभाषित करेंconst schema = buildSchema(` type Query { hello: String user(id: Int!): User } type User { id: Int name: String email: String }`);

// रिज़ॉल्वरconst rootValue = { hello: () => 'नमस्ते, दुनिया!', user: ({ id }) => ({ id, name: `उपयोगकर्ता ${id}`, email: `user${id}@example.com` })};

// हैंडलर बनाएँconst handler = createHandler({ schema, rootValue });

// HTTP सर्वरconst server = http.createServer((req, res) => { if (req.url === '/graphql') { handler(req, res); } else { res.writeHead(404); res.end('Not Found'); }});

server.listen(4000, () => { console.log('सर्वर http://localhost:4000/graphql पर शुरू हुआ');});


Express के साथ एकीकरण



अधिकांश डेवलपर्स Express का उपयोग करते हैं। Express के साथ graphql-http का एकीकरण सरल है:



const express = require('express');const { createHandler } = require('graphql-http');const { buildSchema } = require('graphql');

const schema = buildSchema(` type Query { books: [Book] } type Book { title: String author: String }`);

const books = [ { title: 'युद्ध और शांति', author: 'लियो टॉल्स्टॉय' }, { title: 'अपराध और दंड', author: 'फ्योडोर दोस्तोयेव्स्की' }];

const rootValue = { books: () => books};

const app = express();

app.all('/graphql', createHandler({ schema, rootValue }));

app.listen(3000, () => { console.log('Express + GraphQL http://localhost:3000/graphql पर');});


मुख्य विशेषताएँ और लाभ



  • रूटिंग लचीलापन: आप तय करते हैं कि GraphQL किस एंडपॉइंट पर उपलब्ध होगा।
  • सभी HTTP विधियों का समर्थन: GET और POST अनुरोध सही ढंग से संसाधित होते हैं।
  • अंतर्निहित मान्यता: लाइब्रेरी स्वचालित रूप से स्कीमा के अनुरूप अनुरोधों की जाँच करती है।
  • प्रदर्शन: न्यूनतम मेमोरी खपत और उच्च प्रसंस्करण गति।
  • विस्तारशीलता: प्रमाणीकरण, लॉगिंग और कैशिंग के लिए मिडलवेयर जोड़ा जा सकता है।


म्यूटेशन और सब्सक्रिप्शन के साथ कार्य करना



क्वेरी (Query) के अलावा, graphql-http डेटा बदलने के लिए म्यूटेशन (Mutation) का समर्थन करता है। म्यूटेशन के साथ स्कीमा का उदाहरण:



const schema = buildSchema(`  type Query {    message: String  }  type Mutation {    setMessage(newMessage: String!): String  }`);

let message = 'पुराना संदेश';

अनुशंसाएँ