Flask অ্যাপ্লিকেশনে JSON রেসপন্স তৈরি করা খুবই সহজ। Flask jsonify() ফাংশন ব্যবহার করে JSON ডেটা রিটার্ন করতে পারে, যা অ্যাপ্লিকেশনে API তৈরি করার সময় প্রয়োজনীয় হয়ে ওঠে। JSON (JavaScript Object Notation) একটি সাধারণ ডেটা বিন্যাস যা সিস্টেমের মধ্যে ডেটা বিনিময়ের জন্য ব্যবহার করা হয়, বিশেষ করে ওয়েব অ্যাপ্লিকেশন এবং মোবাইল অ্যাপ্লিকেশনগুলোর মধ্যে।
Flask-এ JSON Response তৈরি করার পদ্ধতি
১. jsonify() ফাংশন ব্যবহার
Flask-এ jsonify() ফাংশন ব্যবহার করে আপনি JSON রেসপন্স তৈরি করতে পারেন। এটি একটি ডিকশনারি বা লিস্টের ডেটা নিয়ে JSON ফরম্যাটে রেসপন্স ফেরত দেয়।
উদাহরণ:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/api/data")
def get_data():
data = {
"name": "John",
"age": 30,
"city": "New York"
}
return jsonify(data)
if __name__ == "__main__":
app.run(debug=True)
এখানে:
jsonify(data): এটিdataডিকশনারিকে JSON ফরম্যাটে কনভার্ট করে এবং রেসপন্স হিসেবে পাঠায়।- ব্রাউজারে
http://127.0.0.1:5000/api/dataURL খুললে আপনি এই JSON রেসপন্স দেখতে পাবেন।
আউটপুট:
{
"name": "John",
"age": 30,
"city": "New York"
}
২. HTTP Status Code সহ JSON Response
Flask-এ JSON রেসপন্সের সাথে HTTP স্ট্যাটাস কোড অন্তর্ভুক্ত করা যায়, যা API রেসপন্সের সঠিক অবস্থা জানান দেয়।
উদাহরণ:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/api/success")
def success():
data = {
"message": "Success!"
}
return jsonify(data), 200 # 200 HTTP status code
@app.route("/api/error")
def error():
error_data = {
"error": "Something went wrong!"
}
return jsonify(error_data), 400 # 400 HTTP status code
if __name__ == "__main__":
app.run(debug=True)
এখানে:
200: সফল রেসপন্সের জন্য স্ট্যাটাস কোড।400: ব্যর্থ রেসপন্সের জন্য স্ট্যাটাস কোড।- প্রতিটি রেসপন্সের সাথে JSON ডেটা এবং স্ট্যাটাস কোড ফেরত দেওয়া হয়।
আউটপুট:
http://127.0.0.1:5000/api/success:
{ "message": "Success!" }স্ট্যাটাস কোড: 200 (OK)
http://127.0.0.1:5000/api/error:
{ "error": "Something went wrong!" }স্ট্যাটাস কোড: 400 (Bad Request)
৩. JSON Response থেকে ডেটা এক্সট্র্যাক্ট করা
Flask-এ আপনি JSON ডেটা পেতে বা প্রেরণ করতে request.get_json() ব্যবহার করতে পারেন। এটি ক্লায়েন্ট থেকে প্রাপ্ত JSON ডেটাকে Python ডিকশনারি হিসেবে কনভার্ট করে।
উদাহরণ:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/api/receive", methods=["POST"])
def receive_data():
data = request.get_json() # ক্লায়েন্ট থেকে JSON ডেটা গ্রহণ
name = data.get("name")
age = data.get("age")
response = {
"message": f"Received data: Name = {name}, Age = {age}"
}
return jsonify(response), 200
if __name__ == "__main__":
app.run(debug=True)
এখানে:
request.get_json(): এটি ক্লায়েন্ট থেকে প্রাপ্ত JSON ডেটা গ্রহণ করে এবং Python ডিকশনারিতে রূপান্তরিত করে।- POST রিকোয়েস্ট এ JSON ডেটা পাঠাতে হবে।
API রিকোয়েস্ট পাঠানোর উদাহরণ (Postman বা cURL দিয়ে):
{
"name": "Alice",
"age": 25
}
আউটপুট:
{
"message": "Received data: Name = Alice, Age = 25"
}
৪. Complex JSON Response
Flask-এ আপনি আরও জটিল JSON রেসপন্সও তৈরি করতে পারেন, যেখানে নেস্টেড ডেটা এবং লিস্ট থাকতে পারে।
উদাহরণ:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/api/complex")
def complex_response():
data = {
"user": {
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com"
},
"posts": [
{"title": "Post 1", "content": "This is the first post."},
{"title": "Post 2", "content": "This is the second post."}
]
}
return jsonify(data)
if __name__ == "__main__":
app.run(debug=True)
আউটপুট:
{
"user": {
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com"
},
"posts": [
{
"title": "Post 1",
"content": "This is the first post."
},
{
"title": "Post 2",
"content": "This is the second post."
}
]
}
এখানে:
"user"একটি ডিকশনারি।"posts"একটি লিস্ট যার মধ্যে ডিকশনারি রয়েছে।
৫. Custom Error Handling with JSON
Flask-এ কাস্টম ত্রুটি (error) তৈরি করার জন্য errorhandler() ব্যবহার করা যায়, যেখানে JSON রেসপন্স ফেরত দেওয়া হয়।
উদাহরণ:
from flask import Flask, jsonify
app = Flask(__name__)
@app.errorhandler(404)
def not_found(error):
return jsonify({"error": "Page not found"}), 404
@app.errorhandler(500)
def internal_error(error):
return jsonify({"error": "Internal server error"}), 500
if __name__ == "__main__":
app.run(debug=True)
এখানে:
@app.errorhandler(404): এটি 404 ত্রুটি (পেজ না পাওয়া) হলে JSON রেসপন্স প্রদান করবে।@app.errorhandler(500): এটি 500 ত্রুটি (সার্ভার সমস্যা) হলে JSON রেসপন্স প্রদান করবে।
আউটপুট:
404 ত্রুটি:
{ "error": "Page not found" }500 ত্রুটি:
{ "error": "Internal server error" }
Flask-এ JSON রেসপন্স তৈরি করা খুবই সহজ এবং শক্তিশালী। আপনি jsonify() ব্যবহার করে ডেটা JSON ফরম্যাটে রিটার্ন করতে পারেন, এবং HTTP Status Codes সহ সঠিক রেসপন্স প্রদান করতে পারেন। JSON API তৈরি করার সময় Flask আপনাকে আরও শক্তিশালী ও নমনীয় কাস্টম রেসপন্স তৈরি করার সুবিধা দেয়।
Read more