Custom Headers এবং Status Code Management

Flask এর Request এবং Response Management - ফ্লাস্ক (Flask) - Web Development

356

Flask-এ Custom Headers এবং Status Code Management ব্যবহার করে আপনি HTTP রেসপন্সের সাথে কাস্টম তথ্য (যেমন হেডার এবং স্ট্যাটাস কোড) যুক্ত করতে পারেন। এটি বিশেষত API তৈরি করার সময় খুবই গুরুত্বপূর্ণ, কারণ এটি ক্লায়েন্ট এবং সার্ভারের মধ্যে তথ্য আদান-প্রদানকে আরও সুসংগঠিত এবং স্পষ্ট করে তোলে।

১. Custom Headers ব্যবহার করা

Custom Headers হল কাস্টম তথ্য যা HTTP রেসপন্সের অংশ হিসেবে ক্লায়েন্টকে পাঠানো হয়। আপনি Flask রেসপন্সে কাস্টম হেডার যোগ করতে পারেন এবং এই তথ্য ব্যবহারকারীর কাছে পাঠাতে পারেন।

উদাহরণ:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/custom-header")
def custom_header():
    response = jsonify({"message": "Custom header added!"})
    response.headers["X-Custom-Header"] = "This is a custom header"
    return response

if __name__ == "__main__":
    app.run(debug=True)

এখানে:

  • response.headers["X-Custom-Header"]: এটি একটি কাস্টম হেডার X-Custom-Header তৈরি করছে, যেটি রেসপন্সের সাথে পাঠানো হবে।
  • jsonify: এটি একটি JSON রেসপন্স তৈরি করছে।

যখন আপনি http://127.0.0.1:5000/custom-header URL এ যাবেন, আপনি রেসপন্সে X-Custom-Header নামে একটি কাস্টম হেডার দেখতে পাবেন।

রেসপন্স উদাহরণ:

HTTP/1.0 200 OK
Content-Type: application/json
X-Custom-Header: This is a custom header
Content-Length: 34

২. HTTP Status Code Management

Flask-এ HTTP Status Code ম্যানেজ করতে আপনাকে রেসপন্সের স্ট্যাটাস কোড নির্ধারণ করতে হয়। এটি ক্লায়েন্টকে জানায় যে তাদের রিকোয়েস্টটি সফল ছিল, অথবা কোন সমস্যা ছিল এবং কি ধরণের সমস্যা ছিল।

স্ট্যাটাস কোড উদাহরণ:

  • 200 OK: রিকোয়েস্ট সফলভাবে সম্পন্ন হয়েছে।
  • 404 Not Found: অনুরোধকৃত রিসোর্স পাওয়া যায়নি।
  • 500 Internal Server Error: সার্ভারের ভিতরে কোন ত্রুটি ঘটেছে।

উদাহরণ: Status Code সহ রেসপন্স ফেরত দেওয়া

from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/success")
def success():
    return jsonify({"message": "Request was successful!"}), 200

@app.route("/not-found")
def not_found():
    return jsonify({"error": "Resource not found!"}), 404

@app.route("/error")
def error():
    return jsonify({"error": "Internal server error!"}), 500

if __name__ == "__main__":
    app.run(debug=True)

এখানে:

  • 200: সঠিক রিকোয়েস্টের জন্য সফল স্ট্যাটাস কোড।
  • 404: রিসোর্স পাওয়া না গেলে (পেজ না পাওয়া) 404 স্ট্যাটাস কোড।
  • 500: সার্ভার-ভিত্তিক ত্রুটির জন্য 500 স্ট্যাটাস কোড।

যখন আপনি এই রাউটগুলো ব্রাউজারে বা API ক্লায়েন্টে পরীক্ষা করবেন, আপনি সঠিক স্ট্যাটাস কোড সহ রেসপন্স পাবেন।

রেসপন্স উদাহরণ:

  1. /success URL (200 OK):

    HTTP/1.0 200 OK
    Content-Type: application/json
    Content-Length: 39
    {
        "message": "Request was successful!"
    }
    
  2. /not-found URL (404 Not Found):

    HTTP/1.0 404 NOT FOUND
    Content-Type: application/json
    Content-Length: 39
    {
        "error": "Resource not found!"
    }
    
  3. /error URL (500 Internal Server Error):

    HTTP/1.0 500 INTERNAL SERVER ERROR
    Content-Type: application/json
    Content-Length: 44
    {
        "error": "Internal server error!"
    }
    

৩. Custom Status Code এবং Headers একই রেসপন্সে ব্যবহার করা

Flask-এ আপনি Custom Headers এবং Custom Status Code একসাথে ব্যবহার করতে পারেন। এটি বিশেষত API রেসপন্সগুলিতে কাজের সময় প্রয়োজনীয়। যেমন, আপনি রেসপন্সের সঙ্গে কাস্টম হেডার এবং স্ট্যাটাস কোড একযোগে পাঠাতে পারেন।

উদাহরণ:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/custom-response")
def custom_response():
    response = jsonify({"message": "Custom status and headers"})
    response.headers["X-Custom-Header"] = "Custom header value"
    return response, 201  # 201 Created status code

if __name__ == "__main__":
    app.run(debug=True)

এখানে:

  • 201 Created: এই স্ট্যাটাস কোডটি নতুন রিসোর্স সঠিকভাবে তৈরি হলে ব্যবহার হয় (যেমন, নতুন ডাটাবেস এন্ট্রি তৈরি হলে)।
  • X-Custom-Header: কাস্টম হেডার যুক্ত করা হয়েছে।

রেসপন্স উদাহরণ:

HTTP/1.0 201 CREATED
Content-Type: application/json
X-Custom-Header: Custom header value
Content-Length: 38
{
    "message": "Custom status and headers"
}

৪. Flask Response Object

Flask আপনাকে Response অবজেক্ট সরবরাহ করে, যা আপনি কাস্টম হেডার, কাস্টম স্ট্যাটাস কোড এবং অন্যান্য কাস্টম রেসপন্স ভ্যালু সেট করতে ব্যবহার করতে পারেন।

from flask import Flask, Response

app = Flask(__name__)

@app.route("/custom-response-object")
def custom_response_object():
    response = Response(
        '{"message": "This is a custom response object"}', 
        status=200, 
        mimetype='application/json'
    )
    response.headers['X-Response-Source'] = 'Flask'
    return response

if __name__ == "__main__":
    app.run(debug=True)

এখানে:

  • Response: এটি কাস্টম রেসপন্স অবজেক্ট তৈরি করেছে, যেখানে কনটেন্ট, স্ট্যাটাস কোড এবং MIME টাইপ নির্ধারণ করা হয়েছে।
  • X-Response-Source: একটি কাস্টম হেডার।

রেসপন্স উদাহরণ:

HTTP/1.0 200 OK
Content-Type: application/json
X-Response-Source: Flask
Content-Length: 56
{
    "message": "This is a custom response object"
}

Flask-এ Custom Headers এবং Status Code Management ব্যবহার করে আপনি কাস্টম HTTP রেসপন্স তৈরি করতে পারেন, যা আপনার অ্যাপ্লিকেশন এবং API-কে আরও শক্তিশালী এবং নমনীয় করে তোলে। এই ফিচারগুলি API ডেভেলপমেন্টে গুরুত্বপূর্ণ, কারণ এগুলি ক্লায়েন্ট এবং সার্ভারের মধ্যে আরও স্পষ্ট এবং কার্যকরী যোগাযোগ নিশ্চিত করে।

Content added By
Promotion

Are you sure to start over?

Loading...