$lang['tuto'] = "ट्यूटोरियल"; ?>$lang['tuto'] = "ट्यूटोरियल"; ?> फ़ेच का उपयोग करके

फ़ेच का उपयोग करके जावास्क्रिप्ट के साथ एक एपीआई पोस्ट अनुरोध भेजना

फ़ेच का उपयोग करके जावास्क्रिप्ट के साथ एक एपीआई पोस्ट अनुरोध भेजना
फ़ेच का उपयोग करके जावास्क्रिप्ट के साथ एक एपीआई पोस्ट अनुरोध भेजना

फ़ेच के साथ एपीआई पोस्ट अनुरोध भेजने का तरीका समझना

एक भेजा जा रहा है पोस्ट अनुरोध एपीआई का उपयोग करते समय डेटा साझाकरण और प्रमाणीकरण के लिए आवश्यक है। यदि आप जावास्क्रिप्ट का उपयोग करना जानते हैं तो यह HTTP अनुरोध भेजने का एक भरोसेमंद तरीका है लाना() तकनीक. लेकिन अनुरोध का सटीक निर्माण कभी-कभी अस्पष्ट हो सकता है, खासकर जब हेडर जैसे हेडर के साथ काम करते हैं प्राधिकार.

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

यह आलेख प्रदर्शित करेगा कि कैसे बनाया जाए पोस्ट अनुरोध का उपयोग लाना() विधि सही ढंग से. हम संभावित समस्याओं का निदान करेंगे और आपके द्वारा अनुभव की गई '500 आंतरिक सर्वर त्रुटि' जैसी सामान्य त्रुटियों को रोकने के लिए उचित हेडर प्रारूप प्रदर्शित करेंगे।

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

आज्ञा उपयोग का उदाहरण
fetch() get() फ़ंक्शन का उपयोग करके HTTP अनुरोधों के माध्यम से सर्वर से संपर्क किया जा सकता है। इसका उपयोग इस उदाहरण में एपीआई एंडपॉइंट पर POST अनुरोध सबमिट करने के लिए किया जाता है।
Authorization एपीआई कॉल सबमिट करते समय, बियरर टोकन - जिसमें हैशेड क्रेडेंशियल्स और एपीआई कुंजी शामिल होती है - प्रमाणीकरण की सुविधा के लिए प्राधिकरण हेडर के माध्यम से पारित किया जाता है।
async/await ऐसे कोड को प्रबंधित करने के लिए उपयोग किया जाता है जो अतुल्यकालिक है और अधिक समझने योग्य तरीके से। एक वादा async फ़ंक्शंस द्वारा लौटाया जाता है, और वादा पूरा होने तक निष्पादन रोक दिया जाता है।
response.ok यह पैरामीटर निर्धारित करता है कि HTTP अनुरोध (स्थिति कोड 200-299) सफल था या नहीं। विफलता के मामलों को उचित रूप से प्रबंधित करने के लिए, यदि प्रतिक्रिया स्वीकार्य नहीं है तो एक त्रुटि उत्पन्न हो जाती है।
response.json() एपीआई प्रतिक्रिया के JSON बॉडी को पार्स करने के लिए उपयोग किया जाता है। यह उत्तर स्ट्रीम से एक जावास्क्रिप्ट ऑब्जेक्ट बनाता है।
throw new Error() एपीआई प्रतिक्रिया असफल होने की स्थिति में एक अनुकूलित त्रुटि संदेश फेंकता है। यह सटीक संदेश देता है, जो अधिक कुशल त्रुटि प्रबंधन की सुविधा प्रदान करता है।
console.assert() कंसोल.एस्सर्ट() डिबगिंग और परीक्षण के लिए उपयोग किया जाने वाला एक उपकरण है जो निर्दिष्ट दावे के गलत होने पर केवल एक संदेश लॉग करके परीक्षणों में फ़ेच विधि की वैधता को सत्यापित करने में मदद करता है।
Content-Type अनुरोध निकाय का प्रारूप सामग्री-प्रकार शीर्षलेख में निर्दिष्ट है, जो सुनिश्चित करता है कि एपीआई डेटा (इस मामले में एप्लिकेशन/जेसन) को समझ सकता है।
try/catch त्रुटियों को संभालने के लिए एसिंक रूटीन में उपयोग किया जाता है। वह कोड जो त्रुटि का कारण बन सकता है, प्रयास ब्लॉक में समाहित है, और जो भी त्रुटि उत्पन्न होती है उसे कैच ब्लॉक में नियंत्रित किया जाता है।

पोस्ट अनुरोधों के लिए जावास्क्रिप्ट फ़ेच एपीआई को समझना

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

जब HTTP अनुरोध भेजने की बात आती है, तो फ़ेच विधि बहुत लचीली होती है। मूल फ़ेच संरचना का उपयोग पहले स्क्रिप्ट उदाहरण में किया जाता है, जहाँ तरीका 'POST' पर सेट है। यह एपीआई को इंगित करता है कि डेटा पुनर्प्राप्त होने के बजाय भेजा जा रहा है। इस मामले में, हेडर ऑब्जेक्ट आवश्यक है क्योंकि यह प्राधिकरण फ़ील्ड रखता है, जहां वाहक टोकन भेजा जाता है। सर्वर को सूचित करने के लिए 'सामग्री-प्रकार: एप्लिकेशन/json' भी शामिल किया गया है कि डेटा JSON प्रारूप में प्रसारित किया जा रहा है। इसके अभाव में सर्वर द्वारा अनुरोध की अनुचित व्याख्या के कारण त्रुटियाँ हो सकती हैं।

कोड को अधिक समझने योग्य और साफ़-सुथरा बनाने के लिए, हम इसका परिचय देते हैं async/प्रतीक्षा करें दूसरी लिपि में वाक्यविन्यास। यह विधि अतुल्यकालिक अनुरोधों का जवाब देने में सहायता करती है। हम एक का उपयोग करते हैं प्रयास करें/पकड़ें वादों को जंजीर में बांधने के स्थान पर ब्लॉक का उपयोग करें तब() और पकड़ना(). इससे कोड को बनाए रखना आसान हो जाता है और त्रुटि प्रबंधन सुव्यवस्थित हो जाता है। यदि एपीआई प्रतिक्रिया में कोई समस्या है, तो हम इसकी पहचान करते हैं और एक संपूर्ण संदेश रिकॉर्ड करते हैं। यह प्रारंभिक अनुरोध के दौरान हुई '500 आंतरिक सर्वर त्रुटि' जैसी समस्या निवारण त्रुटियों के लिए विशेष रूप से सहायक है।

तीसरे समाधान में फ़ेच लॉजिक को अपने स्वयं के फ़ंक्शन में विभाजित किया गया है, जो अधिक मॉड्यूलर रणनीति अपनाता है और इसे पुन: प्रयोज्य बनाता है। हम एक सरल इकाई परीक्षण भी लागू करते हैं जिसका उपयोग किया जाता है कंसोल.assert() यह निर्धारित करने के लिए कि क्या फ़ेच अनुरोध की प्रतिक्रिया सही है। आप इसकी मॉड्यूलर संरचना की बदौलत वैकल्पिक एपीआई एंडपॉइंट या प्रमाणीकरण तकनीकों का उपयोग करने के लिए फ़ंक्शन को जल्दी से संशोधित कर सकते हैं। अपनी अंतर्निहित त्रुटि-हैंडलिंग क्षमताओं के कारण, एप्लिकेशन अनुरोध असफल होने की स्थिति में भी व्यावहारिक प्रतिक्रिया दे सकता है।

प्राधिकरण के साथ एपीआई पोस्ट अनुरोध भेजने के लिए फ़ेच का उपयोग करना

यह उदाहरण आपको दिखाता है कि जावास्क्रिप्ट का उपयोग कैसे करें लाना() प्राधिकरण हेडर और उचित त्रुटि प्रबंधन के साथ POST अनुरोध भेजने की विधि।

// Solution 1: Simple Fetch API with Authorization
const apiKey = 'your_api_key';
const hashedCredentials = 'your_hashed_credentials';
const url = 'https://authservice.priaid.ch/login?format=json';

fetch(url, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}:${hashedCredentials}`,
    'Content-Type': 'application/json'
  }
})
.then(response => {
  if (!response.ok) {
    throw new Error('Network response was not ok');
  }
  return response.json();
})
.then(data => console.log('Success:', data))
.catch(error => console.error('Error:', error));

फ़ेच के साथ प्राधिकरण और अनुरोध त्रुटियों को संभालना

यह विधि त्रुटि प्रबंधन को बढ़ाकर और प्रश्नों के असफल होने पर संपूर्ण प्रतिक्रिया देकर विश्वसनीय एपीआई संचार सुनिश्चित करती है।

// Solution 2: Fetch with Detailed Error Handling
async function postData() {
  const apiKey = 'your_api_key';
  const hashedCredentials = 'your_hashed_credentials';
  const url = 'https://authservice.priaid.ch/login?format=json';
  
  try {
    const response = await fetch(url, {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${apiKey}:${hashedCredentials}`,
        'Content-Type': 'application/json'
      }
    });
    
    if (!response.ok) {
      throw new Error(`Error ${response.status}: ${response.statusText}`);
    }
    
    const data = await response.json();
    console.log('Success:', data);
  } catch (error) {
    console.error('Fetch Error:', error.message);
  }
}
  
postData();

फ़ेच और यूनिट परीक्षण के साथ मॉड्यूलर दृष्टिकोण

इस मॉड्यूलर दृष्टिकोण में फ़ेच अनुरोध को सत्यापित करने के लिए एक सरल इकाई परीक्षण शामिल है और तर्क को कार्यों में विभाजित किया गया है।

// Solution 3: Modular Fetch Function with Unit Test
const fetchData = async (apiKey, hashedCredentials) => {
  const url = 'https://authservice.priaid.ch/login?format=json';
  
  try {
    const response = await fetch(url, {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${apiKey}:${hashedCredentials}`,
        'Content-Type': 'application/json'
      }
    });
    
    if (!response.ok) {
      throw new Error(`Error ${response.status}: ${response.statusText}`);
    }
    
    return await response.json();
  } catch (error) {
    return { success: false, message: error.message };
  }
};

// Unit Test
const testFetchData = async () => {
  const result = await fetchData('your_api_key', 'your_hashed_credentials');
  console.assert(result.success !== false, 'Test Failed: ', result.message);
  console.log('Test Passed:', result);
};

testFetchData();

फ़ेच अनुरोधों में एपीआई प्रमाणीकरण और त्रुटि प्रबंधन पर विस्तार

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

POST अनुरोध सबमिट करने का एक महत्वपूर्ण तत्व लाना() यह सत्यापित कर रहा है कि एपीआई आपके द्वारा प्रदान किए जा रहे विशेष प्रारूप और प्रकार के डेटा को प्राप्त करने में सक्षम है। यह सुनिश्चित करने में सहायता के लिए कि सर्वर आपके अनुरोध के मुख्य भाग को उचित रूप से पढ़ता है, आप 'सामग्री-प्रकार: एप्लिकेशन/जेसन' का उपयोग कर सकते हैं। कभी-कभी, एपीआई को POST अनुरोध निकाय में फॉर्म डेटा या क्वेरी पैरामीटर सहित अतिरिक्त फ़ील्ड की आवश्यकता हो सकती है, जो पहले दस्तावेज़ से स्पष्ट नहीं हो सकता है।

बाहरी एपीआई के साथ संचार करने वाले विश्वसनीय प्रोग्राम विकसित करने के लिए त्रुटि प्रबंधन पर सावधानीपूर्वक विचार करने की आवश्यकता होती है। आपको 500 त्रुटि के अलावा अतिरिक्त समस्याएं भी हो सकती हैं, जैसे 404 त्रुटियां या अनुचित डेटा या गलत समापन बिंदु से संबंधित 400 त्रुटियां। ए का उपयोग प्रयास करें/पकड़ें आपके कोड में व्यापक त्रुटि संदेशों और लॉगिंग सिस्टम के साथ ब्लॉक, इन मुद्दों के निदान और समाधान में सहायता कर सकता है। अपने कोड में अनुरोधों को शामिल करने से पहले, पोस्टमैन या कर्ल जैसे कार्यक्रमों के साथ उनका परीक्षण करना हमेशा एक अच्छा विचार है ताकि यह सुनिश्चित हो सके कि सब कुछ उसी तरह काम करता है जैसा उसे करना चाहिए।

फ़ेच का उपयोग करके एपीआई पोस्ट अनुरोधों के बारे में सामान्य प्रश्न

  1. बियरर टोकन क्या है और यह महत्वपूर्ण क्यों है?
  2. एपीआई संचार की सुरक्षा के लिए उपयोग की जाने वाली एक प्रकार की प्रमाणीकरण तकनीक बियरर टोकन है। यह सुनिश्चित करने के लिए कि सर्वर को पता है कि अनुरोध कौन कर रहा है, इसे इसके माध्यम से पारित किया जाता है Authorization आपके अनुरोध में शीर्षलेख.
  3. मुझे 500 आंतरिक सर्वर त्रुटि क्यों मिलती है?
  4. 500 त्रुटि सर्वर में समस्या का संकेत देती है। आपके उदाहरण में, यह एपीआई को प्रदान किए गए दोषपूर्ण डेटा या अनुचित स्वरूपण का परिणाम हो सकता है Authorization शीर्षक.
  5. मैं फ़ेच अनुरोध में त्रुटियों को कैसे संभाल सकता हूँ?
  6. डिबगिंग में सहायता के लिए, a का उपयोग करें try/catch ए में ब्लॉक करें async किसी भी गलती का पता लगाने और उन्हें प्रदर्शित करने का कार्य console.error().
  7. 'सामग्री-प्रकार' हेडर क्या करता है?
  8. आप सर्वर पर जिस प्रकार का डेटा संचारित कर रहे हैं वह इसके द्वारा दर्शाया गया है Content-Type शीर्षक. 'application/json' आमतौर पर JSON प्रारूप में डेटा संचारित करने के लिए उपयोग किया जाता है।
  9. क्या मैं विभिन्न एपीआई में फ़ेच फ़ंक्शन का पुन: उपयोग कर सकता हूँ?
  10. हां, आप कई एपीआई के लिए फ़ेच फ़ंक्शन को मॉड्यूलर बनाकर और हेडर, बॉडी और एपीआई एंडपॉइंट को तर्क के रूप में आपूर्ति करके आसानी से पुन: उपयोग कर सकते हैं।

एपीआई अनुरोध चुनौतियों पर अंतिम विचार

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

500 आंतरिक सर्वर त्रुटि जैसी त्रुटियाँ अक्सर डेटा या अनुरोध संरचना के स्वरूपण में समस्याओं का संकेत देती हैं। सावधानीपूर्वक हेडर प्रबंधन और संपूर्ण त्रुटि संदेश डीबगिंग के साथ इस प्रकार की समस्याओं को ठीक करना आसान है।

जावास्क्रिप्ट के साथ एपीआई पोस्ट अनुरोध के लिए स्रोत और संदर्भ
  1. प्राधिकरण शीर्षलेखों को संभालने सहित जावास्क्रिप्ट में फ़ेच के साथ POST अनुरोध को कैसे संरचित किया जाए, इस पर विवरण: एमडीएन वेब डॉक्स - फ़ेच एपीआई
  2. एपीआई दस्तावेज़ POST अनुरोध का उपयोग करके बियरर टोकन के साथ प्रमाणित करने के तरीके पर मार्गदर्शन प्रदान करता है: प्रियाएड प्रमाणीकरण सेवा
  3. जावास्क्रिप्ट अनुरोधों के लिए त्रुटि प्रबंधन पर व्यापक संसाधन, 500 आंतरिक सर्वर त्रुटि जैसे सामान्य मुद्दों पर ध्यान केंद्रित करना: एमडीएन वेब डॉक्स - HTTP 500 स्थिति कोड