माइक्रोसर्विसेज़ के लिए JavaScript पर API Gateway: एक संपूर्ण गाइड

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

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

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

आपके प्रोजेक्ट को JavaScript पर API Gateway की आवश्यकता क्यों है?

\n\n

कल्पना करें कि आपका backend एक विशाल शॉपिंग मॉल है। इसके अंदर दर्जनों दुकानें (माइक्रोसर्विसेज़) हैं: एक किताबें बेचता है, दूसरा कपड़े, तीसरा इलेक्ट्रॉनिक्स। प्रत्येक दुकान का अपना प्रवेश द्वार, अपने नियम और अपनी भाषा है। अब कल्पना करें कि एक आगंतुक (क्लाइंट एप्लिकेशन) को एक टी-शर्ट खरीदने के लिए इन सभी प्रवेश द्वारों पर जाना होगा। अराजकता, है ना?

\n\n

वेब डेवलपमेंट की दुनिया में, इस समस्या को API Gateway हल करता है - सभी माइक्रोसर्विसेज़ के लिए एक एकल प्रवेश बिंदु। यह शॉपिंग मॉल के प्रशासक की तरह है: अनुरोधों को निर्देशित करता है, टिकट (टोकन) की जाँच करता है, विभिन्न दुकानों से डेटा एकत्र करता है और क्लाइंट को तैयार उत्तर देता है। और आज हम सीखेंगे कि Node.js का उपयोग करके शुद्ध JavaScript में ऐसा गेटवे कैसे लिखा जाए।

\n\n

यह लेख उन शुरुआती लोगों के लिए उपयोगी होगा जो माइक्रोसर्विसेज़ आर्किटेक्चर से परिचित हो रहे हैं, साथ ही अनुभवी डेवलपर्स के लिए जो काम करने वाले कोड उदाहरण देखना चाहते हैं। चलिए शुरू करते हैं!

\n\n

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

\n\n

API Gateway एक सर्वर घटक है जो क्लाइंट और आंतरिक सेवाओं के बीच एक मध्यवर्ती परत के रूप में कार्य करता है। यह निम्नलिखित कार्य करता है:

\n
    \n
  • रूटिंग - अनुरोधों को उपयुक्त माइक्रोसर्विस पर निर्देशित करता है।
  • \n
  • प्रमाणीकरण और प्राधिकरण - जाँच करता है कि उपयोगकर्ता के पास पहुँच है या नहीं।
  • \n
  • डेटा एकत्रीकरण - कई सेवाओं से उत्तरों को एक में एकत्र करता है।
  • \n
  • अनुरोध सीमित करना - backend को ओवरलोड से बचाता है।
  • \n
  • प्रोटोकॉल रूपांतरण - उदाहरण के लिए, REST को GraphQL में बदलता है।
  • \n
\n\n

JavaScript सेवाओं (विशेषकर Node.js पर) के लिए, API Gateway एक स्वाभाविक विकल्प है। इसे Express, Koa या Fastify पर आसानी से लिखा जा सकता है, और मुख्य बात यह है कि यह पूरे प्रोजेक्ट में एक समान कोड शैली बनाए रखने की अनुमति देता है।

\n\n

Node.js पर API Gateway की संरचना डिज़ाइन करना

\n\n

कोड लिखने से पहले, आइए आर्किटेक्चर तय करें। मान लीजिए कि हमारे पास तीन माइक्रोसर्विसेज़ हैं:

\n
    \n
  • users-service - उपयोगकर्ता प्रबंधन (पोर्ट 3001)।
  • \n
  • orders-service - ऑर्डर (पोर्ट 3002)।
  • \n
  • products-service - उत्पाद सूची (पोर्ट 3003)।
  • \n
\n\n

क्लाइंट (फ्रंटएंड) केवल पोर्ट 8080 पर Gateway से संपर्क करता है। Gateway स्वयं तय करता है कि अनुरोध कहाँ भेजना है।

\n\n

चरण 1. Express की बुनियादी सेटिंग

\n\n

एक नया प्रोजेक्ट बनाएँ और निर्भरताएँ स्थापित करें:

\n
mkdir api-gateway\ncd api-gateway\nnpm init -y\nnpm install express http-proxy-middleware dotenv
\n\n

अब एक सरल Gateway लिखें जो सेवाओं के लिए अनुरोधों को प्रॉक्सी करता है:

\n
// gateway.js\nconst express = require('express');\nconst { createProxyMiddleware } = require('http-proxy-middleware');\nrequire('dotenv').config();\n\nconst app = express();\nconst PORT = process.env.PORT || 8080;\n\n// माइक्रोसर्विसेज़ के लिए रूट\napp.use('/users', createProxyMiddleware({\n  target: 'http://localhost:3001',\n  changeOrigin: true,\n}));\n\napp.use('/orders', createProxyMiddleware({\n  target: 'http://localhost:3002',\n  changeOrigin: true,\n}));\n\napp.use('/products', createProxyMiddleware({\n  target: 'http://localhost:3003',\n  changeOrigin: true,\n}));\n\napp.listen(PORT, () => {\n  console.log(`API Gateway पोर्ट ${PORT} पर शुरू हुआ`);\n});
\n\n

बस इतना ही! अब /users का कोई भी अनुरोध स्वचालित रूप से users-service पर रीडायरेक्ट हो जाता है। लेकिन यह केवल शुरुआत है। एक वास्तविक Gateway को और अधिक करना चाहिए।

\n\n

प्रमाणीकरण और टोकन जाँच जोड़ना

\n\n

API Gateway के मुख्य कार्यों में से एक केंद्रीकृत प्रमाणीकरण है। प्रत्येक माइक्रोसर्विस में JWT की जाँच करने के बजाय, हम इसे गेटवे में एक बार करते हैं।

\n\n

टोकन जाँच के लिए middleware जोड़ें:

\n
// middleware/auth.js\nconst jwt = require('jsonwebtoken');\n\nconst authMiddleware = (req, res, next) =>                

ब्लॉग

पुस्तक अनुशंसाएँ