Flask এবং FastAPI দুটি জনপ্রিয় Python ফ্রেমওয়ার্ক যা RESTful API তৈরি করার জন্য ব্যবহৃত হয়। Flask হলো একটি মিনি-মাইক্রো ফ্রেমওয়ার্ক, এবং FastAPI হলো একটি নতুন, অত্যন্ত দ্রুত এবং কার্যকরী ফ্রেমওয়ার্ক যা modern features যেমন asynchronous programming এবং data validation সহ REST API তৈরি করার জন্য উপযুক্ত।
এখানে Flask এবং FastAPI ব্যবহার করে REST API তৈরির মৌলিক পদক্ষেপ ব্যাখ্যা করা হলো।
Flask দিয়ে REST API তৈরি
Flask হলো একটি সাধারণ এবং হালকা ফ্রেমওয়ার্ক যা দ্রুত RESTful API তৈরি করতে সহায়তা করে।
১. Flask ইন্সটল করা:
প্রথমে Flask ইন্সটল করতে হবে:
pip install Flask
২. Flask অ্যাপ তৈরি করা:
একটি app.py ফাইল তৈরি করে নিচের কোডটি লিখুন:
from flask import Flask, jsonify, request
# Flask অ্যাপ তৈরি
app = Flask(__name__)
# একটি ডিফল্ট রুট
@app.route('/')
def home():
return "Welcome to Flask API!"
# GET রিকোয়েস্ট হ্যান্ডলিং
@app.route('/api/data', methods=['GET'])
def get_data():
data = {"message": "This is a GET request response"}
return jsonify(data)
# POST রিকোয়েস্ট হ্যান্ডলিং
@app.route('/api/data', methods=['POST'])
def post_data():
data = request.get_json() # ক্লায়েন্ট থেকে JSON ডেটা নেয়
response = {"received_data": data}
return jsonify(response), 201
# Flask অ্যাপ রান করা
if __name__ == "__main__":
app.run(debug=True)
৩. Flask API চালানো:
app.py ফাইলটি রান করুন:
python app.py
এটি localhost:5000 এ আপনার API সার্ভার চালু করবে।
৪. API ব্যবহার:
- GET রিকোয়েস্ট: http://localhost:5000/api/data
- POST রিকোয়েস্ট: আপনি Postman বা অন্য কোন টুল ব্যবহার করে
{"key": "value"}JSON পোস্ট করতে পারেন।
FastAPI দিয়ে REST API তৈরি
FastAPI হলো একটি অত্যন্ত দ্রুত এবং asynchronous ফ্রেমওয়ার্ক যা Python 3.7+ ব্যবহার করে API তৈরি করতে সাহায্য করে। এটি automatic data validation এবং documentation generation যেমন OpenAPI এবং JSON Schema সহ আসে।
১. FastAPI ইন্সটল করা:
প্রথমে FastAPI এবং uvicorn (একটি ASGI সার্ভার) ইন্সটল করতে হবে:
pip install fastapi uvicorn
২. FastAPI অ্যাপ তৈরি করা:
একটি app.py ফাইল তৈরি করে নিচের কোডটি লিখুন:
from fastapi import FastAPI
from pydantic import BaseModel
# FastAPI অ্যাপ তৈরি
app = FastAPI()
# পিড্যানটিক মডেল (Data validation)
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
# একটি ডিফল্ট রুট
@app.get("/")
def read_root():
return {"message": "Welcome to FastAPI!"}
# GET রিকোয়েস্ট হ্যান্ডলিং
@app.get("/api/data")
def get_data():
return {"message": "This is a GET request response"}
# POST রিকোয়েস্ট হ্যান্ডলিং
@app.post("/api/data")
def create_item(item: Item):
return {"received_item": item}
# FastAPI অ্যাপ রান করার জন্য uvicorn ব্যবহার
৩. FastAPI API চালানো:
app.py ফাইলটি চালাতে, uvicorn ব্যবহার করুন:
uvicorn app:app --reload
এটি localhost:8000 এ আপনার API সার্ভার চালু করবে।
৪. API ব্যবহার:
- GET রিকোয়েস্ট: http://localhost:8000/api/data
- POST রিকোয়েস্ট: আপনি Postman বা অন্য কোন টুল ব্যবহার করে
{"name": "item1", "price": 20.0}JSON পোস্ট করতে পারেন।
৫. Automatic Documentation:
FastAPI ডকুমেন্টেশন স্বয়ংক্রিয়ভাবে তৈরি করে। আপনি এটির কাছে যেতে পারেন:
- OpenAPI Docs: http://localhost:8000/docs
- Swagger UI: http://localhost:8000/redoc
Flask vs FastAPI:
| Feature | Flask | FastAPI |
|---|---|---|
| Performance | সাধারণত ধীর (Synchronous) | অত্যন্ত দ্রুত (Asynchronous, Fast) |
| Data Validation | ম্যানুয়ালি করতে হয় | স্বয়ংক্রিয় (Pydantic দিয়ে) |
| Documentation | ম্যানুয়ালি তৈরি করতে হয় | স্বয়ংক্রিয় (OpenAPI এবং Swagger UI) |
| Learning Curve | সহজ এবং ব্যবহারকারী বান্ধব | সহজ, তবে কিছু নতুন ধারণা (Asynchronous) |
| Use Cases | ছোট থেকে মাঝারি প্রকল্প | উচ্চ পারফরম্যান্স, বড় এবং দ্রুত প্রকল্প |
| Asynchronous Support | না | হ্যাঁ (Asynchronous programming) |
উপসংহার:
- Flask সাধারণত ছোট বা মাঝারি আকারের প্রকল্পে ব্যবহার করা হয় এবং এটি খুবই সহজ এবং ব্যবহারকারী বান্ধব।
- FastAPI একটি আধুনিক, দ্রুত এবং শক্তিশালী ফ্রেমওয়ার্ক যা asynchronous programming এবং automatic data validation এর সুবিধা দেয়, যা বড় এবং উচ্চ পারফরম্যান্স প্রকল্পের জন্য উপযুক্ত।
FastAPI অনেক বেশি সুবিধা প্রদান করে যেমন automatic documentation, asynchronous support, এবং data validation পদ্ধতি, যা মডার্ন ডেভেলপমেন্টে খুবই কার্যকরী।
Read more