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

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

Express.js RESTful API के निर्माण के लिए एक शानदार समाधान प्रदान करता है। लेकिन विकास के दौरान प्रदर्शन उपायों को प्राथमिकता देना आवश्यक है।

यह गारंटी देता है कि आपके एपीआई न केवल प्रभावी ढंग से काम करते हैं बल्कि बेहतर तरीके से भी काम करते हैं। अंततः, एक अच्छा प्रदर्शन करने वाले वेब ऐप के परिणामस्वरूप बेहतर उपयोगकर्ता अनुभव और सफलता की अधिक संभावना होती है।

Express.js REST API के लिए प्रदर्शन अनुकूलन

Express.js गति और प्रदर्शन के असाधारण स्तर को प्राप्त करने के लिए Node.js की अतुल्यकालिक प्रकृति और घटना-संचालित वास्तुकला का उपयोग करता है।

बहरहाल, Express.js को अनुकूलित किया जा रहा है

instagram viewer
बाकी एपीआई और भी अधिक लाभ प्राप्त कर सकते हैं. इनमें उल्लेखनीय रूप से बेहतर प्रतिक्रिया समय, बढ़ी हुई विश्वसनीयता और आपके अनुप्रयोगों की बढ़ी हुई दक्षता शामिल है, जिससे सहज और आकर्षक उपयोगकर्ता अनुभव प्राप्त होते हैं।

अपने एपीआई के प्रदर्शन को प्राथमिकता देकर, आप समग्र रूप से अपने सॉफ़्टवेयर की सफलता का मार्ग प्रशस्त करते हैं।

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

1. डेटाबेस क्वेरीज़ को अनुकूलित करें

डेटाबेस से डेटा को कुशलतापूर्वक पुनर्प्राप्त करना और हेरफेर करना REST API के प्रदर्शन को काफी हद तक प्रभावित कर सकता है।

डेटाबेस क्वेरीज़ को अनुकूलित करके, आप क्वेरी निष्पादन समय को काफी कम कर सकते हैं और संसाधन खपत में कटौती कर सकते हैं। यह अंततः समग्र रूप से आपके Express.js एप्लिकेशन के प्रदर्शन को बढ़ाएगा।

डेटाबेस क्वेरीज़ को अनुकूलित करने के लिए यहां कुछ उपयोगी युक्तियाँ दी गई हैं।

  1. उपयोग डेटाबेस अनुक्रमणिका. प्रश्नों में अक्सर उपयोग किए जाने वाले कॉलमों की पहचान करें और उन कॉलमों पर उपयुक्त अनुक्रमणिका बनाएं। यह डेटाबेस इंजन को आवश्यक डेटा का तुरंत पता लगाने और पुनर्प्राप्त करने की अनुमति देता है, जिसके परिणामस्वरूप क्वेरी निष्पादन तेज़ होता है।
  2. पेजिनेशन लागू करें. बड़े डेटासेट के साथ काम करते समय, पेजिनेशन का उपयोग करें। एक बार में सारा डेटा लाने के बजाय, प्रत्येक क्वेरी में लौटाए गए डेटा की मात्रा सीमित करें।
  3. अनावश्यक प्रश्नों से बचें. अपने कोड का विश्लेषण करें, पहचानें और किसी भी अनावश्यक प्रश्न को हटा दें। तदनुसार अपने प्रश्नों को पुनः सक्रिय करने से प्रदर्शन में पर्याप्त सुधार हो सकता है।

2. अपने पूरे ऐप में कैशिंग का उपयोग करें

कैशिंग एक ऐसी तकनीक है जिसका उपयोग बार-बार एक्सेस किए गए डेटा को कैश में संग्रहीत करने के लिए किया जाता है, जो एक अस्थायी भंडारण प्रणाली है। सीधे शब्दों में कहें तो, जब कोई क्लाइंट डेटा का अनुरोध करता है, तो सर्वर सीधे डेटाबेस से पूछताछ करने के बजाय पहले उसके कैश की जांच करता है।

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

यहां एक सरल कोड उदाहरण दिया गया है जो दर्शाता है कि कैशिंग को कैसे कार्यान्वित किया जाए।

कॉन्स्ट एक्सप्रेस = ज़रूरत होना('अभिव्यक्त करना');
कॉन्स्ट नोड कैश = ज़रूरत होना('नोड-कैश');

कॉन्स्ट कैश = नया NodeCache();
कॉन्स्ट ऐप = एक्सप्रेस();

ऐप.गेट ('/एपीआई/डेटा', (अनुरोध, रेस) => {
कॉन्स्ट कैशकी = 'आंकड़े';
कॉन्स्ट कैश्डडेटा = कैश.गेट (कैशकी);

अगर (!कैश्डडेटा) {
कॉन्स्ट फ़ेच्डडेटा = फ़ेचडेटाफ़्रॉमडेटाबेस();
कैश.सेट (कैशकी, फ़ेच्डडेटा);
कैश्डडेटा = फ़ेच्डडेटा;
}

res.json (कैश्डडेटा);
});

समारोहFetchDataFromDatabase() {
//... डेटा लाने का तर्क यहां दिया गया है...
वापस करना आंकड़े;
}

उपरोक्त कोड दर्शाता है कि नोड-कैश लाइब्रेरी का उपयोग करके कैशिंग कैसे काम करती है। प्रारंभ में, यह जाँचता है कि अनुरोधित डेटा पहले से ही कैश में संग्रहीत है या नहीं। यदि डेटा मौजूद नहीं है, तो यह डेटाबेस से डेटा लाने के लिए फ़ंक्शन को ट्रिगर करता है, फिर, प्राप्त डेटा को कैश में संग्रहीत करता है। अंत में, अनुरोधित डेटा को JSON प्रतिक्रिया के रूप में क्लाइंट को लौटाता है।

3. HTTP संपीड़न सक्षम करें

HTTP कम्प्रेशन एक ऐसी तकनीक है जिसका उपयोग आप क्लाइंट और सर्वर के बीच स्थानांतरित डेटा के आकार को कम करने के लिए कर सकते हैं। इसमें सर्वर साइड पर एपीआई प्रतिक्रियाओं को संपीड़ित करना और क्लाइंट साइड पर उन्हें डीकंप्रेस करना शामिल है।

HTTP संपीड़न को सक्षम करके, प्रतिक्रिया पेलोड का आकार काफी कम किया जा सकता है, जिससे प्रतिक्रिया समय तेज हो जाता है।

यहां एक कोड उदाहरण दिया गया है जो दर्शाता है कि HTTP संपीड़न को कैसे सक्षम किया जाए COMPRESSION मध्यस्थ।

एक्सप्रेस = ज़रूरत होना('अभिव्यक्त करना');
कॉन्स्ट संपीड़न = ज़रूरत होना('संपीड़न');

कॉन्स्ट ऐप = एक्सप्रेस();
ऐप.यूज़ (संपीड़न());

ऐप.गेट ('/एपीआई/डेटा', (अनुरोध, रेस) => {
// अपना एपीआई तर्क संभालें
});

यह कोड स्निपेट क्लाइंट को वापस करने से पहले एपीआई प्रतिक्रियाओं को संपीड़ित करने के लिए मिडलवेयर का उपयोग करता है।

4. Promise.all का उपयोग करके समानांतर प्रसंस्करण लागू करें

समानांतर प्रसंस्करण का उपयोग करना वादा.सभी विधि एक ऐसी तकनीक है जिसका उपयोग कई अतुल्यकालिक कार्यों को एक साथ निष्पादित करके एपीआई के प्रदर्शन को बेहतर बनाने के लिए किया जाता है।

जावास्क्रिप्ट वादों की शक्ति का लाभ उठाकर, Promise.all आपको प्रत्येक वादे के क्रमिक रूप से हल होने की प्रतीक्षा करने के बजाय, वादों के एक संग्रह को एक साथ निष्पादित करने की अनुमति देता है।

यह तकनीक विशेष रूप से तब उपयोगी होती है जब आपके पास स्वतंत्र कार्य होते हैं जो एक साथ चल सकते हैं, जैसे विभिन्न समापन बिंदुओं पर कई संबंधित एपीआई अनुरोध करना। इन कार्यों को समानांतर में निष्पादित करके, आप समग्र निष्पादन समय को काफी कम कर सकते हैं और अपने एपीआई की प्रतिक्रिया में सुधार कर सकते हैं।

यहां एक सरल कोड उदाहरण दिया गया है जो दर्शाता है कि Promise.all का उपयोग करके समानांतर प्रसंस्करण कैसे कार्यान्वित किया जाए।

कॉन्स्ट एक्सप्रेस = ज़रूरत होना('अभिव्यक्त करना');
कॉन्स्ट अक्ष = ज़रूरत होना('अक्षियोस');

कॉन्स्ट ऐप = एक्सप्रेस();

ऐप.गेट ('/एपीआई/डेटा', async (req, res) => {
कोशिश {
कॉन्स्ट अनुरोध1 = axios.get(' https://api.example.com/endpoint1');
कॉन्स्ट अनुरोध2 = axios.get(' https://api.example.com/endpoint2');
कॉन्स्ट request3 = axios.get(' https://api.example.com/endpoint3');

कॉन्स्ट [प्रतिक्रिया1, प्रतिक्रिया2, प्रतिक्रिया3] = इंतजारवादा।सभी([
अनुरोध1,
अनुरोध2,
अनुरोध3
]);

//आवश्यकतानुसार प्रतिक्रियाओं को संसाधित करें
} पकड़ना (गलती) {
पुनः स्थिति(500.json({ गलती: 'गलती' });
}
});

इस उदाहरण में, कोड तीन अलग-अलग अंतिम बिंदुओं पर एपीआई अनुरोध करता है। Promise.all फ़ंक्शन का उपयोग करके, वादों की एक श्रृंखला के साथ गुजरते हुए, कोड एक सरणी में प्रतिक्रियाओं को वापस करने से पहले उन सभी के समाप्त होने की प्रतीक्षा करता है।

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

5. डेटाबेस कनेक्शन पूलिंग का उपयोग करें

डेटाबेस कनेक्शन पूलिंग एक ऐसी विधि है जिसमें कई क्लाइंट अनुरोधों को कुशलतापूर्वक संभालने के लिए पुन: प्रयोज्य डेटाबेस कनेक्शन का एक पूल बनाना शामिल है।

प्रत्येक अनुरोध के लिए एक नया कनेक्शन स्थापित करने के बजाय, एप्लिकेशन मौजूदा कनेक्शन का पुन: उपयोग करता है पूल, नए कनेक्शन स्थापित करने के ओवरहेड को कम करता है, जिसके परिणामस्वरूप तेज़ और अधिक कुशल क्वेरी होती है कार्यान्वयन।

यहां एक संक्षिप्त कोड उदाहरण दिया गया है जो दर्शाता है कि डेटाबेस कनेक्शन पूलिंग का उपयोग कैसे करें Express.js एप्लिकेशन में नेवला.

कॉन्स्ट नेवला = ज़रूरत होना('नेवला');
कॉन्स्ट { कनेक्शन } = ज़रूरत होना('नेवला');

कॉन्स्ट कनेक्शन विकल्प = {
पूल का आकार: 10,
न्यूयूआरएल पार्सर का उपयोग करें: सत्य,
यूनिफ़ाइड टोपोलॉजी का उपयोग करें: सत्य
};

नेवला.कनेक्ट('मोंगोडब://लोकलहोस्ट/मायडेटाबेस', कनेक्शनविकल्प);

इस उदाहरण में, कनेक्शन पूल आकार गुण 10 पर सेट है—यह पूल में कनेक्शन की अधिकतम संख्या निर्दिष्ट करता है।

इस कॉन्फ़िगरेशन को सेट करके, एपीआई कनेक्शन का पुन: उपयोग कर सकता है, जिसके परिणामस्वरूप प्रत्येक अनुरोध के लिए नए कनेक्शन स्थापित करने के ओवरहेड को कम करके एपीआई प्रदर्शन में सुधार होता है।

लाभ के लिए एपीआई प्रदर्शन को प्राथमिकता देना

आप अपने Express.js API के प्रदर्शन को अनुकूलित करने के लिए कई कदम उठा सकते हैं। एपीआई एक खेलते हैं महत्वपूर्ण भूमिका, इसलिए यह आवश्यक है कि आप अपनी समग्र सफलता की गारंटी के लिए उनके प्रदर्शन पर ध्यान दें सॉफ़्टवेयर।