HTTP में POST और PUT के बीच अंतर को समझना

HTTP में POST और PUT के बीच अंतर को समझना
HTTP में POST और PUT के बीच अंतर को समझना

HTTP विधियों का परिचय

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

POST का उपयोग आम तौर पर नए संसाधन बनाने के लिए किया जाता है, जबकि PUT का उपयोग किसी विशिष्ट URI पर संसाधन बनाने या बदलने के लिए किया जाता है। यह अंतर, सूक्ष्म होते हुए भी, वेब सेवा परिवेश में संसाधनों को कैसे प्रबंधित और इंटरैक्ट किया जाता है, इसके लिए महत्वपूर्ण निहितार्थ हैं।

आज्ञा विवरण
express() एक्सप्रेस एप्लिकेशन को प्रारंभ करता है।
app.use(express.json()) आने वाले JSON अनुरोधों को पार्स करने के लिए मिडलवेयर।
app.post() संसाधन निर्माण को संभालने के लिए एक POST मार्ग को परिभाषित करता है।
app.put() संसाधनों को अद्यतन करने या बदलने के लिए PUT मार्ग को परिभाषित करता है।
req.body अनुरोध निकाय में भेजे गए JSON डेटा तक पहुँचता है।
res.status().send() HTTP स्टेटस कोड सेट करता है और क्लाइंट को प्रतिक्रिया भेजता है।
fetch() फ्रंटएंड से HTTP अनुरोध निष्पादित करता है।
method: 'POST' फ़ेच अनुरोध में उपयोग करने के लिए HTTP विधि निर्दिष्ट करता है।
headers: { 'Content-Type': 'application/json' } JSON सामग्री को इंगित करने के लिए अनुरोध शीर्षलेख सेट करता है।
body: JSON.stringify(data) अनुरोध निकाय के लिए जावास्क्रिप्ट ऑब्जेक्ट डेटा को JSON स्ट्रिंग में परिवर्तित करता है।

POST और PUT स्क्रिप्ट की कार्यक्षमता को समझना

Node.js और Express का उपयोग करने वाली बैकएंड स्क्रिप्ट दर्शाती है कि HTTP विधियों को कैसे संभालना है POST और PUT संसाधन प्रबंधन के लिए. express() फ़ंक्शन एक्सप्रेस एप्लिकेशन को प्रारंभ करता है, जबकि app.use(express.json()) मिडलवेयर का उपयोग आने वाले JSON अनुरोधों को पार्स करने के लिए किया जाता है। app.post() विधि संसाधन बनाने के लिए एक मार्ग को परिभाषित करती है, जहां से संसाधन डेटा निकाला जाता है req.body और सर्वर-साइड ऑब्जेक्ट में संग्रहीत किया जाता है। प्रतिक्रिया क्लाइंट को 201 स्थिति कोड के साथ वापस भेजी जाती है जो दर्शाती है कि संसाधन सफलतापूर्वक बनाया गया था।

app.put() विधि किसी मौजूदा संसाधन को अद्यतन करने या बदलने के लिए एक मार्ग को परिभाषित करती है। यह विधि संसाधन आईडी का उपयोग करती है req.params.id और से डेटा req.body सर्वर-साइड ऑब्जेक्ट को अद्यतन करने के लिए। प्रतिक्रिया को 200 स्टेटस कोड के साथ वापस भेजा जाता है, जो दर्शाता है कि संसाधन सफलतापूर्वक अपडेट किया गया था। इन HTTP अनुरोधों को निष्पादित करने के लिए फ्रंटएंड स्क्रिप्ट Fetch API का उपयोग करती है। fetch() फ़ंक्शन का उपयोग उचित विधियों के साथ किया जाता है (POST और PUT) और बैकएंड के साथ इंटरैक्ट करने के लिए हेडर, यह सुनिश्चित करते हुए कि क्लाइंट की ओर से संसाधन सही ढंग से बनाए और अपडेट किए गए हैं।

Node.js और Express का उपयोग करके बैकएंड स्क्रिप्ट

यह स्क्रिप्ट दर्शाती है कि Node.js और Express बैकएंड में POST और PUT विधियों का उपयोग कैसे करें

const express = require('express');
const app = express();
app.use(express.json());

let resources = {};

app.post('/resource', (req, res) => {
  const id = generateId();
  resources[id] = req.body;
  res.status(201).send({ id, ...req.body });
});

app.put('/resource/:id', (req, res) => {
  const id = req.params.id;
  resources[id] = req.body;
  res.status(200).send({ id, ...req.body });
});

function generateId() {
  return Math.random().toString(36).substr(2, 9);
}

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

जावास्क्रिप्ट और फ़ेच एपीआई का उपयोग करते हुए फ्रंटएंड स्क्रिप्ट

यह स्क्रिप्ट दर्शाती है कि जावास्क्रिप्ट और फ़ेच एपीआई का उपयोग करके फ्रंटएंड एप्लिकेशन से POST और PUT अनुरोध कैसे करें

const createResource = async (data) => {
  const response = await fetch('http://localhost:3000/resource', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
  });
  return response.json();
};

const updateResource = async (id, data) => {
  const response = await fetch(`http://localhost:3000/resource/${id}`, {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
  });
  return response.json();
};

// Example usage
createResource({ name: 'New Resource' }).then(data => console.log(data));
updateResource('existing-id', { name: 'Updated Resource' }).then(data => console.log(data));

रेस्टफुल एपीआई में संसाधन निर्माण की खोज

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

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

HTTP में POST और PUT के बारे में अक्सर पूछे जाने वाले प्रश्न

  1. POST पद्धति का प्राथमिक उपयोग क्या है?
  2. POST विधि का उपयोग मुख्य रूप से एक निर्दिष्ट संसाधन के अधीनस्थ के रूप में एक नया संसाधन बनाने के लिए किया जाता है।
  3. PUT पद्धति का प्राथमिक उपयोग क्या है?
  4. PUT किसी विशिष्ट यूआरआई पर संसाधन बनाने या बदलने के लिए विधि का उपयोग किया जाता है।
  5. क्या POST निरर्थक है?
  6. नहीं, POST विधि निष्क्रिय नहीं है, जिसका अर्थ है कि एकाधिक समान POST अनुरोध एकाधिक संसाधन बनाएंगे।
  7. क्या PUT निष्क्रिय है?
  8. हां PUT विधि निष्क्रिय है, जिसका अर्थ है कि एकाधिक समान PUT अनुरोध एकल अनुरोध के समान परिणाम उत्पन्न करेंगे।
  9. आपको PUT के स्थान पर POST का उपयोग कब करना चाहिए?
  10. उपयोग POST जब सर्वर नए संसाधन का यूआरआई निर्धारित करता है, और क्लाइंट को इसे निर्दिष्ट करने की आवश्यकता नहीं होती है।
  11. आपको POST के स्थान पर PUT का उपयोग कब करना चाहिए?
  12. उपयोग PUT जब क्लाइंट बनाए या अपडेट किए जाने वाले संसाधन का यूआरआई निर्दिष्ट करता है।
  13. क्या PUT का उपयोग किसी संसाधन को अद्यतन करने के लिए किया जा सकता है?
  14. हां PUT यदि निर्दिष्ट यूआरआई किसी मौजूदा संसाधन को संदर्भित करता है तो विधि मौजूदा संसाधन को अद्यतन कर सकती है।
  15. क्या POST का उपयोग किसी संसाधन को अद्यतन करने के लिए किया जा सकता है?
  16. जबकि POST किसी संसाधन को तकनीकी रूप से अद्यतन कर सकता है, इसका उपयोग आम तौर पर नए संसाधन बनाने के लिए किया जाता है।
  17. यदि PUT अनुरोध में URI मौजूद नहीं है तो क्या होगा?
  18. यदि यूआरआई मौजूद नहीं है, तो PUT विधि उस यूआरआई पर एक नया संसाधन बना सकती है।
  19. एक सफल POST अनुरोध के लिए प्रतिक्रिया स्थिति कोड क्या है?
  20. एक सफल POST अनुरोध आमतौर पर 201 निर्मित स्थिति कोड लौटाता है।

HTTP में पोस्ट और पुट के लिए मुख्य बातें

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

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

पोस्ट और पुट विधियों पर अंतिम विचार

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