NodeJS और Express के साथ एक सुरक्षित REST API बनाएं

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

इस व्यापक ट्यूटोरियल में, आप Node.js और Express का उपयोग करके उत्पादन के लिए तैयार REST API के निर्माण, सुरक्षा और तैनाती के लिए सर्वोत्तम अभ्यास सीखेंगे।

REST API क्या है?

एक एपीआई (एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस) अनुप्रयोगों के बीच सॉफ्टवेयर संचार और डेटा विनिमय को सक्षम बनाता है। REST (प्रतिनिधि राज्य स्थानांतरण) स्केलेबल वेब एपीआई डिजाइन करने के लिए एक लोकप्रिय वास्तुकला शैली है।

REST API के कुछ प्रमुख गुणों में शामिल हैं:

  • क्लाइंट-सर्वर पृथक्करण
  • अनुरोधों के बीच स्टेटलेसनेस
  • संसाधन अंतिम बिंदु पर उजागर
  • संसाधनों में हेरफेर करने के लिए HTTP विधियों का उपयोग
  • एकाधिक ग्राहकों के साथ साझा करने योग्य

REST API के लिए Node.js और Express क्यों?

एक्सप्रेस फ्रेमवर्क के साथ संयुक्त हल्का नोड रनटाइम तेजी से REST API बैकएंड बनाने के लिए उत्कृष्ट उपकरण प्रदान करता है:

  • नॉन-ब्लॉकिंग इवेंट लूप के साथ तेज़ प्रदर्शन
  • एनपीएम पैकेजों का महान पारिस्थितिकी तंत्र
  • स्केलेबल, उच्च-यातायात साइटों के लिए लोकप्रिय
  • शुद्ध जावास्क्रिप्ट विकास को सुलभ बनाता है
  • REST मार्गों और डेटाबेस मॉडल को कनेक्ट करना आसान है

चरण 1 - परियोजना मचान

आइए |_+_| नामक एक नया प्रोजेक्ट सेटअप करें:

|_+_|

इससे एक |_+_| बनेगा निर्भरताओं को प्रबंधित करने के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ।

कोर निर्भरताएँ स्थापित करें

प्रोजेक्ट निर्देशिका में अगला एक्सप्रेस स्थापित करें:

|_+_|

और कुछ अन्य उपयोगी पैकेज:

|_+_|
  • |_+_| - MongoDB डेटाबेस को कनेक्ट और मॉडल करें
  • |_+_| - |_+_| से पर्यावरण चर लोड करें फ़ाइल
  • |_+_| - HTTP हेडर के लिए सुरक्षा मिडलवेयर
  • |_+_| - HTTP अनुरोध लॉगिंग मिडलवेयर
  • |_+_| - क्रॉस-ऑरिजिन HTTP अनुरोधों के लिए CORS सक्षम करें

चरण 2 - ऐप कॉन्फ़िगर करें

निर्भरताएँ स्थापित होने पर, |_+_| खोलें और ऐप प्रवेश बिंदु सेटअप करें:

|_+_|
  • पर्यावरण चर लोड करें
  • एक्सप्रेस ऐप को इनिशियलाइज़ करें
  • सुरक्षा का उपयोग करें और पार्सिंग मिडलवेयर का अनुरोध करें
  • ENV या 5000 से पोर्ट को परिभाषित करें
  • सर्वर प्रारंभ करें

सुरक्षा मिडलवेयर

हेलमेट विभिन्न HTTP प्रतिक्रिया हेडर सेट करके ऐप को सुरक्षित करने में मदद करता है:

  • एक्सएसएस फ़िल्टर
  • MIME सूँघने की रोकथाम
  • क्लाइंट कैशिंग अक्षम करता है
  • क्लिकजैकिंग को रोकने के लिए फ़्रेमगार्ड

इंटरनेट पर उपलब्ध नोड/एक्सप्रेस ऐप्स चलाते समय हमेशा हेलमेट का उपयोग करें।

चरण 3 - MongoDB डेटाबेस कनेक्ट करें

इसके बाद हम अपने एपीआई डेटा को जारी रखने के लिए MongoDB सेटअप करेंगे। एक |_+_| बनाएं क्रेडेंशियल संग्रहीत करने के लिए फ़ाइल:

|_+_|

अपने वास्तविक MongoDB कनेक्शन स्ट्रिंग से बदलें। यह उन पर्यावरण चरों से MongoDB जानकारी लोड करता है जिनका हम बाद में संदर्भ देंगे।

नेवला कनेक्शन

ऑब्जेक्ट डेटा मॉडलिंग के लिए नेवला स्थापित करें:

|_+_|

MongoDB डेटाबेस से कनेक्ट करें:

|_+_|
  • |_+_| से MONGO_URI मान का उपयोग करें फ़ाइल
  • लॉग कनेक्ट करें या त्रुटियाँ पकड़ें

नमूना उपयोगकर्ता मॉडल

उपयोगकर्ता स्कीमा और मॉडल का उदाहरण परिभाषित करें:

|_+_|

अपनी एपीआई डेटा आवश्यकताओं से मेल खाने के लिए फ़ील्ड समायोजित करें।

चरण 4 - REST API रूट परिभाषित करें

अब हम REST संसाधनों पर संचालन करने के लिए CRUD मार्गों का निर्माण कर सकते हैं।

सबसे पहले एक |_+_| बनाएं |_+_| वाला फ़ोल्डर फ़ाइल:

|_+_|

एक्सप्रेस राउटर और यूजर मॉडल को आयात करें, फिर रूट के लिए एक हैंडलर बनाएं |_+_| सभी उपयोगकर्ताओं को लाने के लिए।

सीआरयूडी मार्ग उदाहरण

अतिरिक्त सामान्य CRUD मार्ग:

|_+_|

पुन: प्रयोज्य हैंडलर कार्य

आईडी द्वारा उपयोगकर्ताओं को लाने जैसे पुन: प्रयोज्य तर्क निकालें:

|_+_|

चरण 5 - प्रमाणीकरण और सुरक्षा

प्रमाणीकरण जोड़ना और एपीआई तक पहुंच की सुरक्षा करना प्राथमिकता होनी चाहिए। एक्सप्रेस रेस्ट एपीआई को सुरक्षित करने के लिए सर्वोत्तम अभ्यास यहां दिए गए हैं।

एन्क्रिप्शन और हैशिंग

सुरक्षित भंडारण के लिए डेटाबेस में संग्रहीत पासवर्ड को हैश करने के लिए bcrypt का उपयोग करें। फिर स्रोत पासवर्ड को सुरक्षित रखते हुए उपयोगकर्ता साइन इन पर हैश की तुलना करें।

जेडब्ल्यूटी टोकन

सत्र के बजाय प्रमाणीकरण के लिए JSON वेब टोकन का उपयोग करें। JWTs उपयोगकर्ता डेटा को अनुरोधों पर भेजे गए हस्ताक्षरित टोकन में एन्कोड करते हैं:

|_+_|

भूमिका आधारित प्रामाणिक

मार्गों तक पहुंच को नियंत्रित करने के लिए उपयोगकर्ता भूमिकाएँ निर्दिष्ट करें। अनुरोधों पर अनुमतियाँ जाँचें:

|_+_|

दर सीमित

अत्यधिक अनुरोधों को कम करने और DDoS के दुरुपयोग या क्रूर बल के हमलों को रोकने के लिए एक्सप्रेस रेट लिमिट जैसे दर सीमित मिडलवेयर का उपयोग करें।

एसएसएल और HTTPs

एपीआई डोमेन पर एसएसएल प्रमाणपत्रों के साथ HTTP सक्षम करें। सभी उत्पादन एपीआई को एन्क्रिप्टेड परिवहन सुरक्षा का उपयोग करना चाहिए।

चरण 6 - दस्तावेज़ीकरण

उचित दस्तावेज़ीकरण डेवलपर्स को अंतर्निहित कोड तक पहुंच के बिना एपीआई का सही ढंग से उपयोग करने में मदद करता है। एपीआई दस्तावेज़ों के लिए कुछ विकल्पों में शामिल हैं:

अकड़

स्वैगर ऑटो रूट हैंडलर कोड में JSDoc टिप्पणियों से इंटरैक्टिव दस्तावेज़ तैयार करता है।

डाकिया संग्रह

परीक्षण और उपभोग सेवाओं में सहायता के लिए दस्तावेज़ीकृत समापन बिंदुओं के साथ पुन: प्रयोज्य पोस्टमैन संग्रह बनाएं।

मार्कडाउन फ़ाइलें

GitHub रेपो में संग्रहीत सरल मार्कडाउन फ़ाइलें भी काम करती हैं। हालाँकि सभी संस्करणों को अद्यतन रखना सुनिश्चित करें।

होस्ट किए गए उपकरण

स्टॉपलाइट, रीडमी.आईओ और एपीआईएरी जैसे तृतीय पक्ष उपकरण भी दस्तावेज़ बनाने और विज़ुअलाइज़ करने में सहायक होते हैं।

चरण 7 - संस्करण रणनीति

REST API को संस्करणित करना सर्वोत्तम अभ्यास है ताकि अपग्रेड करने से अनजाने में निर्भर क्लाइंट न टूटें। सामान्य रणनीतियाँ हैं:

यूआरआई संस्करण

मार्ग पथों में एपीआई संस्करण शामिल करें:

|_+_|

कस्टम अनुरोध शीर्षलेख

कस्टम हेडर के माध्यम से एपीआई संस्करण पास करें:

|_+_|

हेडर स्वीकार करें

मीडिया प्रकार निर्दिष्ट करने के लिए हेडर स्वीकार करें का लाभ उठाएं:

|_+_|

क्वेरी पैरामीटर

|_+_| का भी उपयोग कर सकते हैं वर्जनिंग के लिए क्वेरी पैरामीटर।

चरण 8 - परीक्षण और गुणवत्ता

मजबूत परीक्षण यह सुनिश्चित करता है कि एपीआई आवश्यकताओं को पूरा करता है और भविष्य में होने वाले परिवर्तनों से बचाता है।

इकाई का परीक्षण

व्यक्तिगत कार्यों, घटकों और वर्गों को अलग करें और उनका परीक्षण करें।

एकीकरण जांच

सत्यापित करें कि संयुक्त घटक अंत-से-अंत प्रवाह के माध्यम से एक साथ कार्य करते हैं।

प्रदर्शन का परीक्षण

स्केलिंग सीमा या धीमे समापन बिंदु की पहचान करने के लिए उच्च ट्रैफ़िक लोड का अनुकरण करें।

सुरक्षा परीक्षण

कमज़ोरियों का पता लगाने के लिए अनधिकृत पहुंच या विकृत डेटा प्रबंधन का प्रयास करें।

प्रलेखन

एपीआई विकसित होने पर जांचें कि दस्तावेज़ सटीक बने रहें।

चरण 9 - परिनियोजन और होस्टिंग

उत्पादन के लिए तैयार होने पर, डेटाबेस और एपीआई सर्वर कंटेनर दोनों को टूल पर तैनात करें:

  • एडब्ल्यूएस ईसीएस, फारगेट
  • Azure कंटेनर उदाहरण
  • गूगल कुबेरनेट्स इंजन

यह क्षैतिज रूप से मापता है और उच्च यातायात भार को संभालता है। निर्भर करता है कि सिस्टम में कितने माइक्रोसर्विसेज शामिल हैं।

कंटेनर आर्केस्ट्रा

इसका उपयोग करके कंटेनरों और सेवाओं को प्रबंधित करें:

  • कुबेरनेट्स - वास्तविक मानक
  • डॉकर झुंड - सरल क्लस्टर प्रबंधन

सीआई/सीडी पाइपलाइन

परीक्षण और तैनाती को स्वचालित करने के लिए ट्रैविस सीआई, सर्कल सीआई, गिटहब एक्शन या जेनकींस जैसे सीआई/सीडी पाइपलाइन टूल सेटअप करें।

कोड के रूप में बुनियादी ढाँचा

स्रोत नियंत्रण में बुनियादी ढांचे के निर्माण के लिए कॉन्फ़िगरेशन स्क्रिप्ट रखें - टेराफॉर्म और अन्सिबल लोकप्रिय विकल्प।

निष्कर्ष

यह Node.js, Express और MongoDB का उपयोग करके उत्पादन-स्तरीय RESTful API के निर्माण, सुरक्षा और तैनाती के लिए इस व्यापक मार्गदर्शिका को समाप्त करता है!

टेकअवे के मूल सिद्धांत हैं:

  • तेज़, स्केलेबल एपीआई के लिए नोड + एक्सप्रेस का उपयोग करें
  • MongoDB जैसे NoSQL डेटाबेस के साथ मॉडल डेटा
  • अनुरोधों को प्रमाणित करें
  • दर सीमा और उचित रूप से एन्क्रिप्ट करें
  • परिवर्तन विकसित करने के लिए संस्करण रणनीति लागू करें
  • क्लाउड प्लेटफ़ॉर्म में होस्ट इंफ्रास्ट्रक्चर

इन डिज़ाइन दिशानिर्देशों को लागू करने से टिकाऊ और मजबूत REST API उत्पन्न होंगे।

यह सभी देखें: