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

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

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

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

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

\n\n

कल्पना करें कि आप C# में एक आधुनिक वेब एप्लिकेशन बना रहे हैं। आपके पास उपयोगकर्ता सेवा, ऑर्डर सेवा, भुगतान सेवा है — और प्रत्येक अपने पोर्ट पर, या विभिन्न सर्वरों पर रहता है। क्लाइंट एप्लिकेशन (फ्रंटएंड या मोबाइल एप्लिकेशन) को इन सभी पतों, डेटा प्रारूपों, प्रमाणीकरण प्रोटोकॉल के बारे में पता होना चाहिए। एक बुरा सपना, है ना?

\n\n

यहाँ C# सेवाओं के लिए API Gateway मंच पर आता है — एक एकल प्रवेश बिंदु जो सारा "गंदा काम" अपने ऊपर ले लेता है: रूटिंग, प्रतिक्रियाओं का एकत्रीकरण, टोकन सत्यापन, कैशिंग और लोड बैलेंसिंग। इस लेख में, हम Ocelot C# और YARP .NET जैसे आधुनिक टूल का उपयोग करके व्यवहार में .NET API गेटवे को लागू करने का तरीका समझेंगे।

\n\n

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

\n\n

API Gateway क्लाइंट और आपकी बैकएंड सेवाओं के बीच एक मध्यवर्ती परत है। यह एक "डिस्पैचर" की तरह काम करता है: आने वाले HTTP अनुरोधों को प्राप्त करता है, उनका विश्लेषण करता है और उन्हें आवश्यक C# माइक्रोसर्विसेज़ पर रीडायरेक्ट करता है। साथ ही, गेटवे अतिरिक्त कार्य कर सकता है:

\n\n
    \n
  • अनुरोध रूटिंग — URL, हेडर या पैरामीटर के आधार पर अनुरोधों को विभिन्न सेवाओं पर निर्देशित करना।
  • \n
  • डेटा एग्रीगेशन — कई सेवाओं से प्रतिक्रियाएँ एकत्र करना और क्लाइंट को एक एकल JSON लौटाना।
  • \n
  • API Gateway प्रमाणीकरण — अनुरोध सेवा तक पहुँचने से पहले JWT टोकन या API कुंजियाँ सत्यापित करना।
  • \n
  • लोड बैलेंसिंग — एक ही सेवा के इंस्टेंस के बीच अनुरोधों को वितरित करना।
  • \n
  • कैशिंग — बार-बार अनुरोधित डेटा के लिए प्रतिक्रियाओं को अस्थायी रूप से संग्रहीत करना।
  • \n
  • रेट लिमिटिंग — एक क्लाइंट से अनुरोधों की संख्या को सीमित करना।
  • \n
\n\n

.NET API गेटवे के बिना, प्रत्येक क्लाइंट को पूरे सिस्टम आर्किटेक्चर को जानना होगा। इसके साथ, क्लाइंट केवल एक एंडपॉइंट से संवाद करता है, और बाकी सब "हुड के नीचे" होता है।

\n\n

C# पर API Gateway के लिए दो मुख्य उपकरण

\n\n

.NET इकोसिस्टम में दो शक्तिशाली समाधान हैं जो आपके ध्यान के योग्य हैं:

\n\n

Ocelot C#

\n

शायद C# सेवाओं के लिए सबसे लोकप्रिय API Gateway। Ocelot एक ओपन-सोर्स लाइब्रेरी है जो किसी भी ASP.NET Core एप्लिकेशन में गेटवे कार्यक्षमता जोड़ती है। यह समर्थन करता है:

\n
    \n
  • JSON कॉन्फ़िगरेशन-आधारित रूटिंग
  • \n
  • प्रतिक्रिया एकत्रीकरण
  • \n
  • प्रमाणीकरण और प्राधिकरण
  • \n
  • रेट लिमिटिंग
  • \n
  • लोड बैलेंसिंग (RoundRobin, LeastConnection)
  • \n
  • WebSockets
  • \n
\n\n

YARP .NET (Yet Another Reverse Proxy)

\n

Microsoft की एक परियोजना, जो एक उच्च-प्रदर्शन रिवर्स प्रॉक्सी के रूप में स्थित है। YARP अधिक लचीला और प्रदर्शनकारी है, लेकिन अधिक मैन्युअल कॉन्फ़िगरेशन की आवश्यकता है। यह तब उपयुक्त है जब आपको प्रत्येक अनुरोध पर पूर्ण नियंत्रण की आवश्यकता हो।

\n\n

इस लेख में, हम Ocelot पर ध्यान केंद्रित करेंगे — यह शुरू करने में आसान है और 90% सामान्य कार्यों को कवर करता है।

\n\n

Ocelot के साथ C# पर API Gateway बनाना: चरण-दर-चरण गाइड

\n\n

आइए वास्तविक कोड लिखें। हम एक .NET API गेटवे बनाएंगे जो दो माइक्रोसर्विसेज़: UserService (पोर्ट 5001) और OrderService (पोर्ट 5002) पर अनुरोधों को रूट करेगा।

\n\n

चरण 1: प्रोजेक्ट बनाएँ

\n

टर्मिनल खोलें और निष्पादित करें:

\n
dotnet new webapi -n ApiGatewayDemo\ncd ApiGatewayDemo
\n\n

Ocelot पैकेज स्थापित करें:

\n
dotnet add package Ocelot
\n\n

चरण 2: रूट कॉन्फ़िगरेशन सेट करें

\n

प्रोजेक्ट रूट में ocelot.json फ़ाइल बनाएँ। इसमें हम रूटिंग नियमों का वर्णन करेंगे:

\n\n
{\n  "Routes": [\n    {\n      "DownstreamPathTemplate": "/api/users/{everything}",\n      "DownstreamScheme": "http",\n      "DownstreamHostAndPorts": [\n                

ब्लॉग

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