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 ক্লায়েন্টে পরীক্ষা করবেন, আপনি সঠিক স্ট্যাটাস কোড সহ রেসপন্স পাবেন।
রেসপন্স উদাহরণ:
/successURL (200 OK):HTTP/1.0 200 OK Content-Type: application/json Content-Length: 39 { "message": "Request was successful!" }/not-foundURL (404 Not Found):HTTP/1.0 404 NOT FOUND Content-Type: application/json Content-Length: 39 { "error": "Resource not found!" }/errorURL (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 ডেভেলপমেন্টে গুরুত্বপূর্ণ, কারণ এগুলি ক্লায়েন্ট এবং সার্ভারের মধ্যে আরও স্পষ্ট এবং কার্যকরী যোগাযোগ নিশ্চিত করে।
Read more