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 = 'पुराना संदेश'; पुस्तकालय में भी
Rust में एप्लिकेशन कॉन्फ़िगरेशन: config और dotenv लाइब्रेरीज़
PHP में HTML पार्सिंग: वेब स्क्रैपिंग के लिए DOMDocument, SimpleXML और cURL
PHP के लिए Swagger/OpenAPI जनरेशन: सर्वश्रेष्ठ टूल्स और लाइब्रेरीज़