Flask এবং FastAPI দিয়ে REST API তৈরি

Machine Learning - সাইকিট-লার্ন (Scikit-Learn) - Model Deployment এবং Production
194

Flask এবং FastAPI দুটি জনপ্রিয় Python ফ্রেমওয়ার্ক যা দিয়ে RESTful APIs তৈরি করা যায়। Flask একটি মিনি-মাল ও কমপ্যাক্ট ফ্রেমওয়ার্ক হলেও, FastAPI দ্রুত এবং আধুনিক ফিচারসহ RESTful API তৈরি করার জন্য উচ্চ পারফরম্যান্স প্রদান করে। নিচে আমরা Flask এবং FastAPI ব্যবহার করে REST API তৈরি করার জন্য ধাপে ধাপে উদাহরণ দেখাব।


১. Flask দিয়ে REST API তৈরি

Flask একটি মিনি-মাল ফ্রেমওয়ার্ক, যা API তৈরি করা সহজ এবং খুবই হালকা। Flask দিয়ে API তৈরি করতে বেশ কয়েকটি ধাপ রয়েছে।

ধাপ ১: Flask ইনস্টল করা

প্রথমে Flask ইনস্টল করতে হবে:

pip install Flask

ধাপ ২: Flask দিয়ে REST API তৈরি

এখন একটি সিম্পল REST API তৈরি করা যাক। এটি একটি GET এবং POST রিকোয়েস্ট হ্যান্ডল করবে।

from flask import Flask, request, jsonify

app = Flask(__name__)

# GET রুট
@app.route('/api/hello', methods=['GET'])
def hello():
    return jsonify({"message": "Hello, World!"})

# POST রুট
@app.route('/api/echo', methods=['POST'])
def echo():
    data = request.get_json()  # POST রিকোয়েস্ট থেকে JSON ডেটা নেয়ার জন্য
    return jsonify({"received_data": data}), 201

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

ব্যাখ্যা:

  • GET রুট: /api/hello URL এ GET রিকোয়েস্ট পাঠালে "message": "Hello, World!" রেসপন্স ফেরত দিবে।
  • POST রুট: /api/echo URL এ POST রিকোয়েস্ট পাঠালে তা JSON ডেটা গ্রহণ করে এবং "received_data" সহ রেসপন্স পাঠাবে।

ধাপ ৩: Flask API চালানো

এখন Flask অ্যাপ্লিকেশনটি চালানোর জন্য নিচের কমান্ডটি চালান:

python app.py

এটি http://127.0.0.1:5000 এ চালু হবে এবং আপনার API অ্যাক্সেস করা যাবে।


২. FastAPI দিয়ে REST API তৈরি

FastAPI হলো একটি দ্রুত এবং আধুনিক Python ফ্রেমওয়ার্ক যা ASGI (Asynchronous Server Gateway Interface) ভিত্তিক এবং type hints ব্যবহার করে। এটি মডেলিং, টাইপ চেকিং এবং ডকুমেন্টেশন তৈরি করতে সহায়তা করে। FastAPI পেপার API পারফরম্যান্সের জন্য খুবই জনপ্রিয় এবং Flask এর তুলনায় দ্রুত।

ধাপ ১: FastAPI ইনস্টল করা

FastAPI ইনস্টল করতে:

pip install fastapi
pip install uvicorn

uvicorn হলো ASGI সার্ভার যা FastAPI অ্যাপ চালানোর জন্য ব্যবহৃত হয়।

ধাপ ২: FastAPI দিয়ে REST API তৈরি

এখন FastAPI দিয়ে একটি সিম্পল API তৈরি করা যাক।

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

# Pydantic মডেল ডিফাইন করা (যেটি POST রিকোয়েস্টের JSON ভ্যালিডেশন হবে)
class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

# GET রুট
@app.get("/api/hello")
def read_root():
    return {"message": "Hello, World!"}

# POST রুট
@app.post("/api/echo")
def create_item(item: Item):
    return {"received_item": item}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8000)

ব্যাখ্যা:

  • Pydantic মডেল: FastAPI JSON ডেটা ভ্যালিডেশনের জন্য Pydantic মডেল ব্যবহার করে। এখানে, Item ক্লাসটি name, description, price, এবং tax প্রপার্টি ধারণ করছে।
  • GET রুট: /api/hello URL এ GET রিকোয়েস্টে "message": "Hello, World!" রেসপন্স প্রদান করবে।
  • POST রুট: /api/echo URL এ POST রিকোয়েস্টের মাধ্যমে প্রাপ্ত JSON ডেটাকে Item মডেল অনুযায়ী ভ্যালিডেট করে রেসপন্স পাঠাবে।

ধাপ ৩: FastAPI API চালানো

FastAPI অ্যাপ চালানোর জন্য uvicorn ব্যবহার করা হয়। নিচের কমান্ডটি চালান:

uvicorn app:app --reload

এটি http://127.0.0.1:8000 এ চালু হবে এবং আপনার API অ্যাক্সেস করা যাবে।

অটোমেটেড ডকুমেন্টেশন:

FastAPI নিজেই স্বয়ংক্রিয়ভাবে API ডকুমেন্টেশন তৈরি করে। আপনি http://127.0.0.1:8000/docs এ Swagger UI দেখতে পারবেন এবং API রিকোয়েস্ট পাঠাতে পারবেন।


Flask এবং FastAPI তুলনা

বৈশিষ্ট্যFlaskFastAPI
পারফরম্যান্সস্লো (ব্যথিত I/O অপারেশন)দ্রুত (আসিনক্রোনাস, অত্যন্ত পারফরম্যান্স)
ডকুমেন্টেশনঅটোমেটিক ডকুমেন্টেশন নেইস্বয়ংক্রিয় Swagger UI ডকুমেন্টেশন
টাইপ হিন্টিংনেইপিডানটিক এবং টাইপ হিন্টিং দিয়ে API ডিফাইন করা
রাউটিং সিস্টেমসিঙ্ক্রোনাসআসিনক্রোনাস (সর্বোত্তম পারফরম্যান্স)
ইনস্টলেশনসহজ এবং কমপ্যাক্টইনস্টলেশন কিছুটা বেশি, তবে আধুনিক ফিচার আছে
ব্যবহারসাধারণ ওয়েব অ্যাপ্লিকেশন এবং ছোট API এর জন্যবৃহৎ, স্কেলযোগ্য API এবং অ্যাসিনক্রোনাস কাজের জন্য

সারাংশ:

  • Flask হলো একটি মিনি-মাল এবং হালকা ওয়েব ফ্রেমওয়ার্ক, যা ছোট এবং সাধারণ REST APIs তৈরি করার জন্য আদর্শ।
  • FastAPI হলো একটি দ্রুত, আধুনিক ফ্রেমওয়ার্ক যা API পারফরম্যান্স এবং টাইপ হিন্টিং এর সাথে ডকুমেন্টেশন তৈরি করতে সহায়ক।

যদি আপনার API পারফরম্যান্স খুব গুরুত্বপূর্ণ হয় এবং আপনি টাইপ হিন্টিং এবং অটোমেটিক ডকুমেন্টেশন চান, তবে FastAPI বেছে নিন। অন্যদিকে, যদি আপনি একটি সোজা এবং সাধারণ API চান, তবে Flask একটি ভালো পছন্দ হতে পারে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...