JSON Response এবং Custom Routes

Drupal এর RESTful API এবং Headless Drupal - ড্রুপাল (Drupal) - Web Development

235

ড্রুপাল (Drupal) একটি অত্যন্ত নমনীয় কনটেন্ট ম্যানেজমেন্ট সিস্টেম (CMS) যা API ডেভেলপমেন্টের জন্য শক্তিশালী সমর্থন প্রদান করে। যদি আপনি ড্রুপালকে একটি API সিস্টেম হিসেবে ব্যবহার করতে চান, তবে আপনাকে কাস্টম JSON Response এবং Custom Routes তৈরি করার প্রক্রিয়া জানতে হবে। এই প্রক্রিয়ার মাধ্যমে আপনি ড্রুপালকে একটি RESTful API সিস্টেম হিসেবে কনফিগার করতে পারবেন যা JSON ফরম্যাটে ডেটা প্রদান করবে।

এখানে কিভাবে JSON Response এবং Custom Routes তৈরি করতে হয়, তা ব্যাখ্যা করা হলো।


1. Custom Routes তৈরি করা

ড্রুপালে কাস্টম রাউট তৈরি করার মাধ্যমে আপনি নতুন URL পাথ এবং তার সাথে সম্পর্কিত কন্ট্রোলার তৈরি করতে পারবেন। রাউটের মাধ্যমে আপনি সাইটের URL পাথ অনুযায়ী কাস্টম ফাংশনালিটি অ্যাসাইন করতে পারেন।

১.১ Custom Route তৈরি করার জন্য মডিউল তৈরি করা

  1. মডিউল ডিরেক্টরি তৈরি করুন:
    • আপনার সাইটের modules/custom/ ফোল্ডারে একটি নতুন মডিউল ডিরেক্টরি তৈরি করুন, যেমন: custom_api
  2. মডিউল ফাইল তৈরি করুন:

    • custom_api.info.yml নামের একটি ফাইল তৈরি করুন এবং এতে নিচের কনফিগারেশন যোগ করুন:
    name: 'Custom API'
    type: module
    description: 'Provides custom JSON responses for API endpoints.'
    core_version_requirement: ^8 || ^9
    package: Custom
    dependencies:
      - drupal:rest
    
  3. রাউটিং কনফিগারেশন তৈরি করুন:

    • custom_api.routing.yml নামের একটি ফাইল তৈরি করুন এবং এতে কাস্টম রাউট কনফিগারেশন লিখুন:
    custom_api.data:
      path: '/api/data/{id}'
      defaults:
        _controller: '\Drupal\custom_api\Controller\CustomApiController::getData'
        _title: 'Custom API Data'
      requirements:
        _permission: 'access content'
      parameters:
        id:
          type: 'integer'
    

১.২ Custom Controller তৈরি করা

এখন, আপনি কাস্টম রাউটের জন্য একটি কন্ট্রোলার তৈরি করবেন যেটি JSON রেসপন্স প্রদান করবে।

  1. Controller ক্লাস তৈরি করুন:

    • src/Controller/CustomApiController.php ফাইল তৈরি করুন এবং নিচের কোড যোগ করুন:
    namespace Drupal\custom_api\Controller;
    
    use Drupal\Core\Controller\ControllerBase;
    use Symfony\Component\HttpFoundation\JsonResponse;
    
    /**
     * Provides a custom controller for the custom API.
     */
    class CustomApiController extends ControllerBase {
    
      /**
       * Returns custom data as JSON.
       *
       * @param int $id
       *   The ID parameter.
       *
       * @return \Symfony\Component\HttpFoundation\JsonResponse
       *   The JSON response.
       */
      public function getData($id) {
        // Example data (you can fetch actual data from the database or other sources).
        $data = [
          'id' => $id,
          'name' => 'Sample Data',
          'description' => 'This is some example data returned from the custom API.',
        ];
    
        // Return data as JSON.
        return new JsonResponse($data);
      }
    }
    

এখানে CustomApiController ক্লাস একটি কন্ট্রোলার হিসেবে কাজ করছে এবং getData মেথডটি id প্যারামিটার দিয়ে কাস্টম ডেটা রিটার্ন করছে। এই ডেটা JSON ফরম্যাটে ক্লায়েন্টের কাছে পাঠানো হচ্ছে।


2. JSON Response তৈরি করা

ড্রুপাল সাইটে JSON রেসপন্স তৈরি করতে, Symfony\Component\HttpFoundation\JsonResponse ব্যবহার করা হয়। আপনি কন্ট্রোলারের মাধ্যমে ডেটা প্রক্রিয়াজাত করে এবং এটি JSON ফরম্যাটে ক্লায়েন্টের কাছে পাঠাতে পারেন।

২.১ JSON Response উদাহরণ

এখানে একটি উদাহরণ দেওয়া হল, যেখানে আপনি কাস্টম ডেটা JSON ফরম্যাটে ফেরত দেবেন:

use Symfony\Component\HttpFoundation\JsonResponse;

/**
 * Returns a custom JSON response.
 */
public function getCustomData() {
  $data = [
    'status' => 'success',
    'message' => 'This is a custom JSON response from Drupal.',
    'timestamp' => time(),
  ];

  return new JsonResponse($data);
}

এই উদাহরণে, getCustomData() মেথড একটি JSON রেসপন্স প্রদান করবে, যাতে status, message, এবং timestamp রয়েছে।

২.২ Custom JSON Response কাস্টমাইজেশন

আপনি যে JSON রেসপন্স ফেরত দিচ্ছেন, তা সম্পূর্ণ কাস্টমাইজ করা সম্ভব। উদাহরণস্বরূপ, আপনি ডাটাবেস থেকে ডেটা ফেচ করে তা JSON আকারে ফেরত দিতে পারেন।

public function getCustomDataFromDb($id) {
  // Fetch data from the database based on the ID
  $node = \Drupal\node\Entity\Node::load($id);
  
  if ($node) {
    $data = [
      'status' => 'success',
      'title' => $node->getTitle(),
      'body' => $node->get('body')->value,
    ];
  }
  else {
    $data = [
      'status' => 'error',
      'message' => 'Node not found',
    ];
  }

  return new JsonResponse($data);
}

এখানে, getCustomDataFromDb() মেথড ডাটাবেস থেকে একটি নির্দিষ্ট node (পৃষ্ঠার কনটেন্ট) লোড করে এবং সেই ডেটা JSON আকারে ক্লায়েন্টের কাছে পাঠায়।


3. Routes এবং Controller টেস্টিং

ড্রুপালের কাস্টম রাউট এবং কন্ট্রোলার টেস্ট করার জন্য, আপনি সঠিক URL পাথ ব্রাউজারে গিয়ে পরীক্ষা করতে পারেন:

  1. Custom Route URL:
    • আপনার তৈরি করা রাউট /api/data/{id} দিয়ে টেস্ট করুন।
    • উদাহরণ: http://yoursite.com/api/data/1 — যেখানে 1 একটি ভ্যালিড id হতে পারে।
  2. JSON রেসপন্স টেস্ট করুন:
    • ব্রাউজারে অথবা API টেস্টিং টুল (যেমন Postman) ব্যবহার করে রেসপন্স চেক করুন। রেসপন্সে আপনার কাস্টম JSON ডেটা দেখতে পাবেন।

উপসংহার

ড্রুপালে Custom Routes এবং JSON Responses তৈরি করার মাধ্যমে আপনি একটি শক্তিশালী RESTful API তৈরি করতে পারবেন যা ডেটাকে JSON ফরম্যাটে সরবরাহ করবে। কাস্টম রাউট এবং কন্ট্রোলার ব্যবহার করে আপনি সাইটের কার্যকারিতা বাড়াতে এবং কাস্টম ডেটা প্রদান করতে পারবেন। এটি ড্রুপালকে আরও ডেভেলপার-বান্ধব এবং ইন্টিগ্রেশন-ক্ষম করে তোলে, যেমন মোবাইল অ্যাপ্লিকেশন বা অন্যান্য সিস্টেমের সঙ্গে সংযোগ স্থাপন।

Content added By
Promotion

Are you sure to start over?

Loading...