HTTP ਵਿੱਚ POST ਅਤੇ PUT ਵਿੱਚ ਅੰਤਰ ਨੂੰ ਸਮਝਣਾ

HTTP ਵਿੱਚ POST ਅਤੇ PUT ਵਿੱਚ ਅੰਤਰ ਨੂੰ ਸਮਝਣਾ
HTTP ਵਿੱਚ POST ਅਤੇ PUT ਵਿੱਚ ਅੰਤਰ ਨੂੰ ਸਮਝਣਾ

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 ਡੇਟਾ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਦੀ ਹੈ। ਜੇਕਰ ਸਰੋਤ ID ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ, ਤਾਂ ਇਹ ਇੱਕ ਤਰੁੱਟੀ ਵਾਪਸ ਕਰਦਾ ਹੈ। ਨਹੀਂ ਤਾਂ, ਇਹ ਨਵੇਂ ਸਰੋਤ ਨੂੰ ਵਿੱਚ ਸਟੋਰ ਕਰਦਾ ਹੈ resources ਸ਼ਬਦਕੋਸ਼. PUT ਬੇਨਤੀਆਂ ਲਈ, @app.route('/resource/<int:resource_id>', methods=['PUT']) ਡੈਕੋਰੇਟਰ ਦੀ ਵਰਤੋਂ ਸਰੋਤ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਜਾਂ ਬਣਾਉਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਡੇਟਾ ਨੂੰ ਨਿਸ਼ਚਿਤ ਸਰੋਤ ID ਦੇ ਅਧੀਨ ਸਟੋਰ ਕੀਤਾ ਗਿਆ ਹੈ।

Node.js ਅਤੇ Express ਉਦਾਹਰਨ ਵਿੱਚ, ਸਰਵਰ ਨੂੰ JSON ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪਾਰਸ ਕਰਨ ਲਈ ਸੈੱਟਅੱਪ ਕੀਤਾ ਗਿਆ ਹੈ app.use(express.json()). ਰਸਤਾ app.post('/resource', (req, res) => { ... }) ਇਹ ਜਾਂਚ ਕੇ POST ਬੇਨਤੀਆਂ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ ਕਿ ਕੀ ਸਰੋਤ ਪਹਿਲਾਂ ਤੋਂ ਮੌਜੂਦ ਹੈ ਅਤੇ ਜੇਕਰ ਇਹ ਨਹੀਂ ਹੈ ਤਾਂ ਇਸਨੂੰ ਸਟੋਰ ਕਰਦਾ ਹੈ। ਦ app.put('/resource/:id', (req, res) => { ... }) ਰੂਟ ਪ੍ਰਦਾਨ ਕੀਤੀ ID ਦੇ ਆਧਾਰ 'ਤੇ ਸਰੋਤ ਨੂੰ ਅੱਪਡੇਟ ਕਰਕੇ ਜਾਂ ਬਣਾ ਕੇ 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 ਅਤੇ Express ਦੇ ਨਾਲ RESTful API

Node.js ਅਤੇ ਐਕਸਪ੍ਰੈਸ ਫਰੇਮਵਰਕ ਦੇ ਨਾਲ JavaScript

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 ਵਿੱਚ idempotency ਹੈ. ਇਡਮਪੋਟੈਂਸੀ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਇੱਕ ਤੋਂ ਵੱਧ ਇੱਕੋ ਜਿਹੀਆਂ ਬੇਨਤੀਆਂ ਕਰਨ ਦਾ ਇੱਕੋ ਇੱਕ ਬੇਨਤੀ ਕਰਨ ਦੇ ਬਰਾਬਰ ਪ੍ਰਭਾਵ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਦ PUT ਵਿਧੀ ਅਯੋਗ ਹੈ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਸੀਂ ਕਿੰਨੀ ਵਾਰੀ ਭੇਜਦੇ ਹੋ PUT ਬੇਨਤੀ, ਨਤੀਜਾ ਉਹੀ ਹੋਵੇਗਾ: ਸਰੋਤ ਉਸੇ ਸਥਿਤੀ ਵਿੱਚ ਬਣਾਇਆ ਜਾਂ ਅਪਡੇਟ ਕੀਤਾ ਜਾਵੇਗਾ। ਇਹ RESTful ਸੇਵਾਵਾਂ ਵਿੱਚ ਅਨੁਮਾਨ ਲਗਾਉਣ ਯੋਗ ਅਤੇ ਇਕਸਾਰ ਵਿਵਹਾਰ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।

ਇਸ ਦੇ ਉਲਟ, ਦ POST ਵਿਧੀ ਅਯੋਗ ਨਹੀਂ ਹੈ। ਕਈ ਸਮਾਨ POST ਬੇਨਤੀਆਂ ਵੱਖ-ਵੱਖ URIs ਨਾਲ ਕਈ ਸਰੋਤ ਬਣਾ ਸਕਦੀਆਂ ਹਨ। ਇਹ ਗੈਰ-ਆਦਰਸ਼ਤਾ ਲਾਭਦਾਇਕ ਹੈ ਜਦੋਂ ਕਈ ਵੱਖਰੇ ਸਰੋਤਾਂ ਦੀ ਸਿਰਜਣਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਇੱਕ ਫਾਰਮ ਵਿੱਚ ਕਈ ਐਂਟਰੀਆਂ ਜਮ੍ਹਾਂ ਕਰਾਉਣਾ। ਇਹਨਾਂ ਅੰਤਰਾਂ ਨੂੰ ਸਮਝਣਾ ਤੁਹਾਡੀ ਅਰਜ਼ੀ ਦੇ ਲੋੜੀਂਦੇ ਵਿਵਹਾਰ ਦੇ ਅਧਾਰ 'ਤੇ ਇਹ ਫੈਸਲਾ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਕਿ ਇਹ REST ਸਿਧਾਂਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ ਅਤੇ ਉਮੀਦ ਅਨੁਸਾਰ ਕੰਮ ਕਰਦਾ ਹੈ।

POST ਅਤੇ PUT ਵਿਧੀਆਂ ਬਾਰੇ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ

  1. POST ਵਿਧੀ ਦਾ ਮੁੱਖ ਉਦੇਸ਼ ਕੀ ਹੈ?
  2. ਦਾ ਮੁੱਖ ਉਦੇਸ਼ POST ਵਿਧੀ ਨਿਸ਼ਚਿਤ URI ਦੇ ਅਧੀਨ ਇੱਕ ਨਵਾਂ ਸਰੋਤ ਬਣਾਉਣਾ ਹੈ।
  3. ਸਰੋਤ ਪ੍ਰਬੰਧਨ ਦੇ ਮਾਮਲੇ ਵਿੱਚ PUT ਵਿਧੀ ਕਿਵੇਂ ਵੱਖਰੀ ਹੈ?
  4. PUT ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਨਿਸ਼ਚਿਤ URI 'ਤੇ ਸਰੋਤ ਬਣਾਉਣ ਜਾਂ ਬਦਲਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।
  5. ਕੀ PUT ਵਿਧੀ ਅਯੋਗ ਹੈ?
  6. ਹਾਂ, ਦ PUT ਵਿਧੀ idempotent ਹੈ, ਭਾਵ ਇੱਕ ਤੋਂ ਵੱਧ ਇੱਕੋ ਜਿਹੀਆਂ ਬੇਨਤੀਆਂ ਦਾ ਇੱਕੋ ਇੱਕ ਬੇਨਤੀ ਵਾਂਗ ਹੀ ਪ੍ਰਭਾਵ ਹੋਵੇਗਾ।
  7. POST ਵਿਧੀ ਨੂੰ ਗੈਰ ਕਿਉਂ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ

    POST ਬਨਾਮ PUT 'ਤੇ ਅੰਤਿਮ ਵਿਚਾਰ

    ਸਿੱਟੇ ਵਜੋਂ, POST ਅਤੇ PUT ਦੋਵੇਂ ਵਿਧੀਆਂ HTTP ਓਪਰੇਸ਼ਨਾਂ ਵਿੱਚ ਵੱਖਰੇ ਉਦੇਸ਼ਾਂ ਦੀ ਪੂਰਤੀ ਕਰਦੀਆਂ ਹਨ। POST ਉਹਨਾਂ ਦੇ URI ਨੂੰ ਨਿਰਧਾਰਿਤ ਕੀਤੇ ਬਿਨਾਂ ਨਵੇਂ ਸਰੋਤ ਬਣਾਉਣ ਲਈ ਆਦਰਸ਼ ਹੈ, ਇਸ ਨੂੰ ਕਈ ਐਂਟਰੀਆਂ ਜੋੜਨ ਲਈ ਬਹੁਮੁਖੀ ਬਣਾਉਂਦਾ ਹੈ। PUT, ਦੂਜੇ ਪਾਸੇ, ਇੱਕ ਖਾਸ URI 'ਤੇ ਸਰੋਤਾਂ ਨੂੰ ਬਣਾਉਣ ਜਾਂ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਢੁਕਵਾਂ ਹੈ, ਇਮਪੋਟੈਂਸੀ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ। ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਅਤੇ ਕੁਸ਼ਲ RESTful API ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਇਹਨਾਂ ਅੰਤਰਾਂ ਨੂੰ ਸਮਝਣਾ ਜ਼ਰੂਰੀ ਹੈ। ਹਰੇਕ ਵਿਧੀ ਨੂੰ ਉਚਿਤ ਢੰਗ ਨਾਲ ਵਰਤ ਕੇ, ਡਿਵੈਲਪਰ ਇਹ ਯਕੀਨੀ ਬਣਾ ਸਕਦੇ ਹਨ ਕਿ ਉਹਨਾਂ ਦੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਸਰੋਤ ਬਣਾਉਣ ਅਤੇ ਅੱਪਡੇਟ ਨੂੰ ਲਗਾਤਾਰ ਅਤੇ ਅਨੁਮਾਨਿਤ ਤੌਰ 'ਤੇ ਸੰਭਾਲਦੀਆਂ ਹਨ।