API Routing এবং JSON/XML Response তৈরি

RESTful API ডেভেলপমেন্ট - চেরিপাই (CherryPy) - Web Development

228

CherryPy একটি শক্তিশালী ওয়েব ফ্রেমওয়ার্ক, যা API রাউটিং এবং ডাইনামিক JSON/XML রেসপন্স তৈরি করতে খুবই উপযোগী। CherryPy ব্যবহার করে আপনি সহজেই RESTful API তৈরি করতে পারেন এবং প্রয়োজন অনুযায়ী JSON বা XML ফরম্যাটে রেসপন্স পাঠাতে পারেন।

এখানে আমরা CherryPy তে API Routing এবং JSON/XML Response তৈরি করার পদ্ধতি আলোচনা করব।


১. API Routing (RESTful API)

CherryPy তে API রাউটিং সহজ এবং নমনীয়। আপনি @cherrypy.expose ডেকোরেটর ব্যবহার করে বিভিন্ন API রুট তৈরি করতে পারেন। CherryPy রাউটিং আপনাকে API এন্ডপয়েন্ট তৈরি এবং URL পাথের জন্য রিসোর্সগুলি পরিচালনা করতে সাহায্য করে।

উদাহরণ: RESTful API Routing

import cherrypy

class MyAPI:
    @cherrypy.expose
    def index(self):
        return "API এর জন্য স্বাগতম!"

    @cherrypy.expose
    def user(self, user_id):
        return f"এটি ইউজার {user_id} এর পেজ।"

    @cherrypy.expose
    def products(self):
        return "এটি প্রোডাক্ট API এর পেজ।"

if __name__ == '__main__':
    cherrypy.quickstart(MyAPI())

এখানে:

  • index রুটটি / পাথের জন্য।
  • user রুটটি /user/<user_id> পাথের জন্য কাজ করবে।
  • products রুটটি /products পাথের জন্য কাজ করবে।

২. JSON Response তৈরি করা

CherryPy তে JSON রেসপন্স তৈরি করতে আপনি Python এর json লাইব্রেরি ব্যবহার করতে পারেন। API রাউট থেকে ডাটা JSON ফরম্যাটে ফেরত দিতে cherrypy.response.headers['Content-Type'] সেট করতে হয়।

উদাহরণ: JSON Response তৈরি করা

import cherrypy
import json

class MyAPI:
    @cherrypy.expose
    def index(self):
        data = {"message": "API এর জন্য স্বাগতম!"}
        cherrypy.response.headers['Content-Type'] = 'application/json'
        return json.dumps(data)

    @cherrypy.expose
    def user(self, user_id):
        user_data = {
            "user_id": user_id,
            "name": "John Doe",
            "email": "johndoe@example.com"
        }
        cherrypy.response.headers['Content-Type'] = 'application/json'
        return json.dumps(user_data)

if __name__ == '__main__':
    cherrypy.quickstart(MyAPI())

এখানে:

  • index রুট JSON রেসপন্স হিসেবে "message": "API এর জন্য স্বাগতম!" পাঠায়।
  • user রুট ব্যবহারকারীর আইডি অনুযায়ী একটি JSON ডেটা ফেরত পাঠায়।

৩. XML Response তৈরি করা

XML রেসপন্স তৈরির জন্য Python এর xml.etree.ElementTree লাইব্রেরি ব্যবহার করা যেতে পারে। CherryPy তে, JSON রেসপন্সের মতোই XML রেসপন্স তৈরি করতে cherrypy.response.headers['Content-Type'] সেট করতে হবে।

উদাহরণ: XML Response তৈরি করা

import cherrypy
import xml.etree.ElementTree as ET

class MyAPI:
    @cherrypy.expose
    def index(self):
        response_data = ET.Element('response')
        message = ET.SubElement(response_data, 'message')
        message.text = "API এর জন্য স্বাগতম!"
        
        cherrypy.response.headers['Content-Type'] = 'application/xml'
        return ET.tostring(response_data, encoding='unicode')

    @cherrypy.expose
    def user(self, user_id):
        response_data = ET.Element('user')
        user = ET.SubElement(response_data, 'id')
        user.text = user_id
        name = ET.SubElement(response_data, 'name')
        name.text = "John Doe"
        email = ET.SubElement(response_data, 'email')
        email.text = "johndoe@example.com"
        
        cherrypy.response.headers['Content-Type'] = 'application/xml'
        return ET.tostring(response_data, encoding='unicode')

if __name__ == '__main__':
    cherrypy.quickstart(MyAPI())

এখানে:

  • index রুট XML রেসপন্স হিসেবে "message": "API এর জন্য স্বাগতম!" পাঠায়।
  • user রুট ব্যবহারকারীর তথ্য XML ফরম্যাটে ফেরত পাঠায়।

৪. Query Parameters এবং JSON/XML Response

CherryPy তে আপনি URL এর সাথে query parameters পাঠিয়ে ডেটা প্রসেস করতে পারেন এবং JSON বা XML রেসপন্স ফিরিয়ে দিতে পারেন।

উদাহরণ: Query Parameters ব্যবহার করে JSON Response তৈরি

import cherrypy
import json

class MyAPI:
    @cherrypy.expose
    def index(self, name="Guest"):
        data = {"message": f"স্বাগতম, {name}!"}
        cherrypy.response.headers['Content-Type'] = 'application/json'
        return json.dumps(data)

if __name__ == '__main__':
    cherrypy.quickstart(MyAPI())

এখানে, আপনি http://127.0.0.1:8080/index?name=John দিয়ে JSON রেসপন্স হিসেবে "message": "স্বাগতম, John!" পেতে পারেন।


৫. HTTP Methods (GET, POST, PUT, DELETE) ব্যবহার

CherryPy তে HTTP methods (GET, POST, PUT, DELETE) সমর্থিত, যা API রাউটিংয়ের জন্য ব্যবহৃত হয়। আপনি @cherrypy.expose ডেকোরেটরের মাধ্যমে নির্দিষ্ট HTTP method এর জন্য রাউট তৈরি করতে পারেন।

উদাহরণ: HTTP Methods ব্যবহার করে API

import cherrypy
import json

class MyAPI:
    @cherrypy.expose
    def index(self):
        return "এটি একটি GET রিকোয়েস্টের রেসপন্স!"

    @cherrypy.expose
    @cherrypy.tools.allow(methods=['POST'])
    def post_data(self, data=None):
        response_data = {"message": "POST রিকোয়েস্ট সফল!", "received_data": data}
        cherrypy.response.headers['Content-Type'] = 'application/json'
        return json.dumps(response_data)

if __name__ == '__main__':
    cherrypy.quickstart(MyAPI())

এখানে:

  • index রুট GET রিকোয়েস্টের জন্য রেসপন্স প্রদান করে।
  • post_data রুট POST রিকোয়েস্টের জন্য ডেটা গ্রহণ করে এবং JSON রেসপন্স প্রদান করে।

CherryPy তে API Routing এবং JSON/XML Response তৈরি করা খুবই সহজ এবং শক্তিশালী। CherryPy এর @cherrypy.expose ডেকোরেটর এবং HTTP methods এর মাধ্যমে আপনি RESTful API তৈরি করতে পারেন এবং JSON/XML রেসপন্স প্রদান করতে পারেন। CherryPy এর এই বৈশিষ্ট্যগুলি আপনাকে একটি শক্তিশালী, সাশ্রয়ী এবং সিম্পল API তৈরি করতে সহায়তা করবে।

Content added By
Promotion

Are you sure to start over?

Loading...