टाइपस्क्रिप्ट में Fetch/XMLHttpRequest
यह लेख टाइपस्क्रिप्ट में Fetch/XMLHttpRequest को समझाता है।
आप Fetch API
और XMLHttpRequest
का उपयोग करने के तरीके के साथ-साथ उनके बीच के अंतर को भी सीख सकते हैं।
YouTube Video
टाइपस्क्रिप्ट में Fetch/XMLHttpRequest
टाइपस्क्रिप्ट में, HTTP अनुरोध मुख्य रूप से दो API का उपयोग करके किए जाते हैं: Fetch API
और XMLHttpRequest
। टाइपस्क्रिप्ट का उपयोग करके, आप इन API के साथ असिंक्रोनस संचार करते समय अनुरोधों और प्रतिक्रियाओं के लिए टाइप चेकिंग जोड़ सकते हैं, जिससे आप अधिक सुरक्षित कोड लिख सकते हैं। नीचे, हम प्रत्येक का उपयोग कैसे करें, इसे समझाएंगे।
Fetch API
Fetch API
एक प्रॉमिस-आधारित API है जिसे असिंक्रोनस संचार (HTTP अनुरोध) को सरलता से करने के लिए उपयोग किया जाता है। टाइपस्क्रिप्ट में, आप fetch
विधि का उपयोग करके अनुरोध कर सकते हैं और प्रतिक्रियाओं को टाइप-सुरक्षित तरीके से संसाधित कर सकते हैं।
मूल उपयोग
नीचे GET
अनुरोध का एक बुनियादी उदाहरण दिया गया है।
1const url = 'https://jsonplaceholder.typicode.com/posts';
2
3fetch(url)
4 .then(response => {
5 if (!response.ok) {
6 throw new Error('Network response was not ok');
7 }
8 return response.json(); // Parse the response as JSON
9 })
10 .then(data => {
11 console.log(data);
12 })
13 .catch(error => {
14 console.error('Fetch error:', error);
15 });
- यह कोड निर्दिष्ट URL पर एक
GET
अनुरोध भेजता है, प्राप्त प्रतिक्रिया को JSON के रूप में पार्स करता है, और इसे कंसोल पर आउटपुट करता है।
टाइपस्क्रिप्ट में टाइप-सुरक्षित डेटा का प्रबंधन
fetch
विधि से प्रतिक्रिया का प्रकार अस्पष्ट होता है, इसलिए आप प्रतिक्रिया प्रकार को स्पष्ट रूप से परिभाषित करके टाइपस्क्रिप्ट की टाइप चेकिंग का लाभ उठा सकते हैं।
1// Define the type for the response data
2interface Post {
3 userId: number;
4 id: number;
5 title: string;
6 body: string;
7}
8
9const url = 'https://jsonplaceholder.typicode.com/posts';
10
11fetch(url)
12 .then(response => response.json())
13 .then((data: Post[]) => {
14 data.forEach(post => {
15 console.log(`Title: ${post.title}`);
16 });
17 })
18 .catch(error => {
19 console.error('Error fetching data:', error);
20 });
- यह कोड
fetch
के माध्यम से प्राप्त डेटा परPost
प्रकार लागू करता है, प्रतिक्रिया को टाइप-सुरक्षित तरीके से संसाधित करता है, और प्रत्येक पोस्ट का शीर्षक कंसोल पर आउटपुट करता है।
POST
अनुरोध का उदाहरण
सर्वर को डेटा भेजते समय, POST
विधि का उपयोग करें। बॉडी में JSON भेजने के लिए, headers
और body
निर्दिष्ट करें।
1const postData = {
2 title: 'foo',
3 body: 'bar',
4 userId: 1
5};
6
7fetch('https://jsonplaceholder.typicode.com/posts', {
8 method: 'POST',
9 headers: {
10 'Content-Type': 'application/json'
11 },
12 body: JSON.stringify(postData)
13 })
14 .then(response => response.json())
15 .then(data => {
16 console.log('Created post:', data);
17 })
18 .catch(error => {
19 console.error('Error posting data:', error);
20 });
- यह कोड एक
POST
अनुरोध के साथ सर्वर पर JSON प्रारूप में डेटा भेजता है, प्रतिक्रिया को JSON के रूप में प्राप्त करता है, और इसे कंसोल पर आउटपुट करता है।
असिंक्रोनस फ़ंक्शंस (async
/await
) का उपयोग करके Fetch
टाइपस्क्रिप्ट में async
/await
का उपयोग करके, आप असिंक्रोनस प्रोसेसिंग को अधिक सरलता से लिख सकते हैं।
1// Define the type for the response data
2interface Post {
3 userId: number;
4 id: number;
5 title: string;
6 body: string;
7}
8
9async function fetchPosts() {
10 try {
11 const response = await fetch('https://jsonplaceholder.typicode.com/posts');
12 if (!response.ok) {
13 throw new Error('Network response was not ok');
14 }
15 const data: Post[] = await response.json();
16 console.log(data);
17 } catch (error) {
18 console.error('Fetch error:', error);
19 }
20}
21
22fetchPosts();
- यह कोड
async
/await
सिंटैक्स का उपयोग करके पोस्ट डेटा को विषम रूप से प्राप्त करता है, प्रतिक्रिया कोPost[]
प्रकार के रूप में संसाधित करता है, और इसे कंसोल पर आउटपुट करता है।
XMLHttpRequest
XMLHttpRequest
एक पुराना API है और Fetch API
की तुलना में कुछ अधिक जटिल है, लेकिन इसे तब उपयोग किया जा सकता है जब ब्राउज़र संगतता या अधिक उन्नत नियंत्रण की आवश्यकता हो।
XMLHttpRequest
का बुनियादी उपयोग
नीचे GET
अनुरोध का एक उदाहरण दिया गया है।
1const xhr = new XMLHttpRequest();
2xhr.open('GET', 'https://jsonplaceholder.typicode.com/posts', true);
3
4xhr.onreadystatechange = function () {
5 if (xhr.readyState === 4 && xhr.status === 200) {
6 const data = JSON.parse(xhr.responseText);
7 console.log(data);
8 }
9};
10
11xhr.send();
- यह कोड
XMLHttpRequest
का उपयोग करके निर्दिष्ट URL पर एकGET
अनुरोध भेजता है, प्रतिक्रिया को JSON के रूप में पार्स करता है, और इसे कंसोल पर आउटपुट करता है।
POST
अनुरोध का उदाहरण
सर्वर को डेटा भेजते समय, open
विधि में POST
निर्दिष्ट करें और send
के साथ डेटा भेजें।
1const xhr = new XMLHttpRequest();
2xhr.open('POST', 'https://jsonplaceholder.typicode.com/posts', true);
3xhr.setRequestHeader('Content-Type', 'application/json');
4
5const postData = JSON.stringify({
6 title: 'foo',
7 body: 'bar',
8 userId: 1
9});
10
11xhr.onreadystatechange = function () {
12 if (xhr.readyState === 4 && xhr.status === 201) {
13 console.log('Created post:', xhr.responseText);
14 }
15};
16
17xhr.send(postData);
- यह कोड
XMLHttpRequest
का उपयोग करके एकPOST
अनुरोध के साथ सर्वर पर JSON प्रारूप में डेटा भेजता है, और निर्मित डेटा वाली प्रतिक्रिया को कंसोल पर आउटपुट करता है।
XMLHttpRequest
द्वारा त्रुटि हैंडलिंग
आप onerror
इवेंट का उपयोग करके अनुरोध त्रुटियों को संभाल सकते हैं।
1const xhr = new XMLHttpRequest();
2xhr.open('GET', 'https://jsonplaceholder.typicode.com/posts', true);
3
4xhr.onerror = function () {
5 console.error('Request failed');
6};
7
8xhr.onload = function () {
9 if (xhr.status === 200) {
10 console.log('Response:', xhr.responseText);
11 } else {
12 console.error('Error:', xhr.status);
13 }
14};
15
16xhr.send();
- यह कोड
XMLHttpRequest
के साथ एकGET
अनुरोध निष्पादित करता है,onerror
के माध्यम से अनुरोध त्रुटियों को संभालता है, और सफलता तथा विफलता दोनों स्थितियों में प्रतिक्रिया को उपयुक्त रूप से लॉग करता है।
Fetch API और XMLHttpRequest की तुलना
विशेषता | Fetch API | XMLHttpRequest |
---|---|---|
आधुनिक API | ○ | × |
वादा समर्थन | ○ | × |
पठनीयता | उच्च (अच्छी तरह async /await के साथ काम करता है) |
कम (कई कॉलबैक) |
ब्राउज़र संगतता | कुछ पुराने ब्राउज़रों में समर्थित नहीं है | सभी प्रमुख ब्राउज़रों द्वारा समर्थित |
प्रगति ट्रैकिंग | △ (ReadableStream के साथ संभव) |
○ (onprogress इवेंट उपलब्ध है) |
त्रुटि प्रबंधन | वादे श्रृंखला में त्रुटियां पकड़ी जाती हैं | onerror का उपयोग करना आवश्यक है |
सारांश
TypeScript में, आप Fetch API
का उपयोग करके संगठित और प्रकार-सुरक्षित कोड के साथ असिंक्रोनस अनुरोध लिख सकते हैं। दूसरी ओर, XMLHttpRequest
एक पुरानी API है, लेकिन इसे अभी भी कुछ स्थितियों में उपयोग किया जा सकता है। आम तौर पर, सरल और आधुनिक Fetch API
का उपयोग करने की अनुशंसा की जाती है, लेकिन यदि ब्राउज़र संगतता या प्रगति ट्रैकिंग की आवश्यकता है, तो XMLHttpRequest
पर भी विचार किया जा सकता है।
आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।