HTTP विधियों का परिचय
वेब विकास की दुनिया में, विभिन्न HTTP विधियों के बीच की बारीकियों को समझना महत्वपूर्ण है। आमतौर पर उपयोग की जाने वाली दो विधियाँ, POST और PUT, संसाधन निर्माण और अद्यतन में उनकी समानता और अंतर के कारण अक्सर भ्रम पैदा करती हैं।
RFC 2616 के अनुसार, POST का उपयोग मुख्य रूप से एक नया संसाधन बनाने के लिए किया जाता है, जबकि PUT मौजूदा संसाधन को बना या बदल सकता है। यह आलेख इन विधियों का विस्तार से पता लगाएगा और यह स्पष्ट करने में मदद करेगा कि संसाधन बनाने के लिए किसका उपयोग किया जाना चाहिए।
आज्ञा | विवरण |
---|---|
@app.route('/resource', methods=['POST']) | संसाधन बनाने के लिए POST अनुरोधों को संभालने के लिए फ्लास्क में एक मार्ग परिभाषित करता है। |
request.json | फ्लास्क में अनुरोध निकाय से JSON डेटा निकालता है। |
resources[resource_id] = data | फ्लास्क में संसाधन शब्दकोश में संसाधन को संग्रहीत या अद्यतन करता है। |
app.use(express.json()) | एक्सप्रेस में आने वाले अनुरोधों के लिए JSON पार्सिंग सक्षम करता है। |
app.post('/resource', (req, res) =>app.post('/resource', (req, res) => { ... }) | संसाधन बनाने के लिए POST अनुरोधों को संभालने के लिए एक्सप्रेस में एक मार्ग परिभाषित करता है। |
app.put('/resource/:id', (req, res) =>app.put('/resource/:id', (req, res) => { ... }) | संसाधन को अद्यतन करने या बनाने के लिए PUT अनुरोधों को संभालने के लिए एक्सप्रेस में एक मार्ग परिभाषित करता है। |
वेब अनुप्रयोगों में HTTP विधियों को लागू करना
प्रदान की गई स्क्रिप्ट दर्शाती है कि कैसे कार्यान्वित किया जाए POST और PUT फ्लास्क और एक्सप्रेस फ्रेमवर्क का उपयोग करके वेब अनुप्रयोगों में विधियाँ। फ्लास्क उदाहरण में, @app.route('/resource', methods=['POST']) डेकोरेटर का उपयोग POST अनुरोधों को संभालने के लिए मार्ग को परिभाषित करने के लिए किया जाता है। जब कोई POST अनुरोध किया जाता है, तो request.json कमांड अनुरोध निकाय से JSON डेटा निकालता है। यदि संसाधन आईडी पहले से मौजूद है, तो यह एक त्रुटि देता है। अन्यथा, यह नए संसाधन को इसमें संग्रहीत करता है resources शब्दकोष। PUT अनुरोधों के लिए, @app.route('/resource/<int:resource_id>', methods=['PUT']) डेकोरेटर का उपयोग किसी संसाधन को अद्यतन करने या बनाने के लिए किया जाता है, यह सुनिश्चित करते हुए कि डेटा निर्दिष्ट संसाधन आईडी के तहत संग्रहीत है।
Node.js और Express उदाहरण में, सर्वर को JSON डेटा का उपयोग करके पार्स करने के लिए सेट किया गया है app.use(express.json()). रास्ता app.post('/resource', (req, res) => { ... }) यह जांच कर POST अनुरोधों को संभालता है कि क्या संसाधन पहले से मौजूद है और यदि नहीं है तो उसे संग्रहीत करके। app.put('/resource/:id', (req, res) => { ... }) रूट प्रदान की गई आईडी के आधार पर संसाधन को अद्यतन या बनाकर PUT अनुरोधों को संभालता है। दोनों स्क्रिप्ट प्रभावी ढंग से बताती हैं कि वेब अनुप्रयोगों में संसाधन निर्माण और अपडेट को प्रबंधित करने के लिए POST और PUT विधियों का उपयोग कैसे किया जा सकता है, प्रत्येक HTTP विधि के लिए अंतर और उचित उपयोग के मामलों पर प्रकाश डाला गया है।
POST और PUT विधियों को लागू करने के लिए फ्लास्क का उपयोग करना
फ्लास्क फ्रेमवर्क के साथ पायथन
from flask import Flask, request, jsonify
app = Flask(__name__)
resources = {}
@app.route('/resource', methods=['POST'])
def create_resource():
data = request.json
resource_id = data.get('id')
if resource_id in resources:
return jsonify({'error': 'Resource already exists'}), 400
resources[resource_id] = data
return jsonify(data), 201
@app.route('/resource/<int:resource_id>', methods=['PUT'])
def update_or_create_resource(resource_id):
data = request.json
resources[resource_id] = data
return jsonify(data), 200
if __name__ == '__main__':
app.run(debug=True)
Node.js और एक्सप्रेस के साथ रेस्टफुल एपीआई
Node.js और एक्सप्रेस फ्रेमवर्क के साथ जावास्क्रिप्ट
const express = require('express');
const app = express();
app.use(express.json());
let resources = {}
app.post('/resource', (req, res) => {
const data = req.body;
const resourceId = data.id;
if (resources[resourceId]) {
return res.status(400).json({ error: 'Resource already exists' });
}
resources[resourceId] = data;
res.status(201).json(data);
});
app.put('/resource/:id', (req, res) => {
const resourceId = req.params.id;
resources[resourceId] = req.body;
res.status(200).json(req.body);
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
POST और PUT विधियों के बीच मुख्य अंतर
के बीच अंतर को समझने का एक और महत्वपूर्ण पहलू POST और PUT HTTP में निष्क्रियता है। निष्क्रियता का अर्थ है कि एकाधिक समान अनुरोध करने का प्रभाव एकल अनुरोध करने के समान ही होना चाहिए। PUT विधि निष्क्रिय है, जिसका अर्थ है कि चाहे आप इसे कितनी भी बार भेजें PUT अनुरोध, परिणाम वही होगा: संसाधन उसी स्थिति में बनाया या अद्यतन किया जाएगा। रेस्टफुल सेवाओं में पूर्वानुमानित और सुसंगत व्यवहार सुनिश्चित करने के लिए यह महत्वपूर्ण है।
इसके विपरीत, POST विधि निरर्थक नहीं है. एकाधिक समान POST अनुरोध विभिन्न यूआरआई के साथ कई संसाधन बना सकते हैं। यह गैर-निष्क्रियता तब फायदेमंद होती है जब कई अलग-अलग संसाधनों का निर्माण वांछित होता है, जैसे कि एक फॉर्म में कई प्रविष्टियाँ सबमिट करना। इन अंतरों को समझने से यह तय करने में मदद मिलती है कि आपके एप्लिकेशन के आवश्यक व्यवहार के आधार पर किस पद्धति का उपयोग किया जाए, यह सुनिश्चित करते हुए कि यह REST सिद्धांतों का पालन करता है और अपेक्षा के अनुरूप काम करता है।
पोस्ट और पुट विधियों के बारे में अक्सर पूछे जाने वाले प्रश्न
- POST पद्धति का प्राथमिक उद्देश्य क्या है?
- का प्राथमिक उद्देश्य POST विधि निर्दिष्ट यूआरआई के अधीनस्थ के रूप में एक नया संसाधन बनाना है।
- संसाधन प्रबंधन के संदर्भ में PUT विधि किस प्रकार भिन्न है?
- PUT विधि का उपयोग निर्दिष्ट यूआरआई पर संसाधन बनाने या बदलने के लिए किया जाता है।
- क्या PUT पद्धति निरर्थक है?
- हां PUT विधि निष्क्रिय है, जिसका अर्थ है कि एकाधिक समान अनुरोधों का प्रभाव एकल अनुरोध के समान होगा।
- POST पद्धति को गैर क्यों माना जाता है?
पोस्ट बनाम पुट पर अंतिम विचार
अंत में, POST और PUT दोनों विधियाँ HTTP संचालन में अलग-अलग उद्देश्यों की पूर्ति करती हैं। POST उनके URI को निर्दिष्ट किए बिना नए संसाधन बनाने के लिए आदर्श है, जो इसे कई प्रविष्टियाँ जोड़ने के लिए बहुमुखी बनाता है। दूसरी ओर, PUT एक विशिष्ट यूआरआई पर संसाधन बनाने या अद्यतन करने के लिए उपयुक्त है, जो निष्क्रियता सुनिश्चित करता है। प्रभावी और कुशल रेस्टफुल एपीआई को लागू करने के लिए इन अंतरों को समझना आवश्यक है। प्रत्येक विधि का उचित रूप से उपयोग करके, डेवलपर्स यह सुनिश्चित कर सकते हैं कि उनके एप्लिकेशन लगातार और पूर्वानुमानित रूप से संसाधन निर्माण और अपडेट को संभाल सकें।