2025 में API चुनें: REST, GraphQL, gRPC – JavaScript गाइड

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

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

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

इंटीग्रेशन के तीन स्तंभ: JavaScript की दुनिया में REST, GraphQL और gRPC

\n\n

आज JavaScript में डेवलपमेंट का मतलब है डेटा का अंतहीन आदान-प्रदान। आपका ऐप करेंसी रेट लाता है, फॉर्म भेजता है, वीडियो स्ट्रीम करता है या रियल-टाइम में दस्तावेज़ सिंक करता है। और हर बार आपको चुनना होता है कि आपका क्लाइंट सर्वर से कैसे बात करेगा।

\n\n

लंबे समय तक REST मानक रहा। यह हथौड़े की तरह सरल है। लेकिन जटिल प्रोजेक्ट्स के लिए सिर्फ हथौड़ा काफी नहीं – चाहिए स्विस आर्मी नाइफ (GraphQL) या फिर जैकहैमर (gRPC)।

\n\n

इस लेख में हम JavaScript में API के तीन मुख्य दृष्टिकोणों को समझेंगे। आप असली कोड उदाहरण देखेंगे, हर प्रोटोकॉल की ताकत और कमजोरी जानेंगे, और अपने अगले प्रोजेक्ट के लिए सही टूल चुन पाएंगे। चलिए शुरू करते हैं!

\n\n

REST API: क्लासिक जो कभी पुराना नहीं होता

\n\n

REST (Representational State Transfer) एक आर्किटेक्चरल स्टाइल है, प्रोटोकॉल नहीं। ज़्यादातर डेवलपर REST का मतलब रिसोर्सेज़ पर HTTP रिक्वेस्ट (GET /users, POST /orders) समझते हैं।

\n\n

JavaScript में REST रिक्वेस्ट कैसा दिखता है

\n\n

सबसे लोकप्रिय तरीका है नेटिव fetch या axios लाइब्रेरी। यहाँ एक सामान्य GET रिक्वेस्ट है:

\n\n
// यूज़र्स की लिस्ट लाएं\nconst getUsers = async () => {\n  const response = await fetch('https://api.example.com/users');\n  if (!response.ok) {\n    throw new Error(`HTTP error! status: ${response.status}`);\n  }\n  const data = await response.json();\n  return data;\n};\n\n// उपयोग का उदाहरण\ntry {\n  const users = await getUsers();\n  console.log(users);\n} catch (error) {\n  console.error('यूज़र्स लोड करने में त्रुटि:', error);\n}\n
\n\n

JavaScript डेवलपर के लिए REST के फायदे

\n\n
    \n
  • सरलता और पूर्वानुमान। GET, POST, PUT, DELETE – हर वर्ब का स्पष्ट अर्थ है।
  • \n
  • कैशिंग। HTTP कैश बिना किसी सेटअप के काम करता है, जिससे बार-बार की रिक्वेस्ट तेज़ होती हैं।
  • \n
  • व्यापक समर्थन। कोई भी बैकएंड किसी भी भाषा में REST दे सकता है।
  • \n
  • टूल्स। Postman, Swagger, Insomnia – टेस्टिंग के लिए बड़ा इकोसिस्टम।
  • \n
\n\n

REST की मुख्य कमियां

\n\n
    \n
  • Over-fetching (डेटा की अधिकता)। आप /users मांगते हैं, सर्वर सारे फील्ड देता है – पासवर्ड (हैश) और इंटरनल ID भी, जबकि आपको सिर्फ नाम और ईमेल चाहिए।
  • \n
  • Under-fetching (डेटा की कमी)। एक यूज़र और उसके आखिरी ऑर्डर पाने के लिए दो रिक्वेस्ट करनी पड़ती हैं: /users/1 और /users/1/orders।
  • \n
  • कई एंडपॉइंट। जटिल बिज़नेस लॉजिक दर्जनों URL बनाती है, जिन्हें मेंटेन करना मुश्किल होता है।
  • \n
\n\n
\n

REST कब चुनें? सरल CRUD ऐप्स, पब्लिक API और उन प्रोजेक्ट्स के लिए आदर्श जहाँ सरलता और कैशिंग ज़रूरी है।

\n
\n\n

GraphQL: सिर्फ वही मांगें जो चाहिए

\n\n

GraphQL एक क्वेरी भाषा और रनटाइम एनवायरनमेंट है, जिसे Facebook (अब Meta) ने बनाया। कई एंडपॉइंट की जगह एक ही endpoint होता है, और क्लाइंट खुद तय करता है कि कौन से फील्ड लेने हैं।

\n\n

JavaScript में GraphQL क्वेरी लिखना

\n\n

क्लाइंट पर GraphQL के लिए आमतौर पर @apollo/client या urql लाइब्रेरी इस्तेमाल होती है। लेकिन सीधे fetch से भी काम चल सकता है:

\n\n
// fetch के ज़रिए GraphQL क्वेरी\nconst query = `\n  query {\n    user(id: "123") {\n      name\n      email\n      posts {\n        title\n        createdAt\n      }\n    }\n  }\n`;\n\nconst fetchUserWithPosts = async () => {\n  const response = await fetch('https://api.example.com/graphql', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({ query })\n  });\n  const result = await response.json();\n  return result.data;\n};\n\n// कॉल करें\nfetchUserWithPosts().then(data => console.log(data));\n
\n\n

फर्क देख रहे हैं

ब्लॉग

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