Yii এ RESTful Controller তৈরি করা

RESTful API ডেভেলপমেন্ট - জী ফ্রেমওয়ার্ক (Yii Framework) - Web Development

214

Yii ফ্রেমওয়ার্কে RESTful API তৈরি করা খুব সহজ, কারণ Yii 2 এর মধ্যে ইনবিল্ট RESTful Controller সাপোর্ট রয়েছে। RESTful API হল এমন একটি ওয়েব সার্ভিস, যা HTTP প্রোটোকলের মাধ্যমে ডেটা আদান-প্রদান করতে সক্ষম। Yii ফ্রেমওয়ার্কে RESTful API তৈরির জন্য yii\rest\ActiveController ক্লাস ব্যবহার করা হয়।

এই গাইডে, আমরা Yii ফ্রেমওয়ার্কে RESTful controller তৈরি করার প্রক্রিয়া ব্যাখ্যা করব।


RESTful Controller এর জন্য কনফিগারেশন

Yii ফ্রেমওয়ার্কে RESTful API তৈরি করতে প্রথমে কিছু কনফিগারেশন করতে হয়। সাধারণত, config/web.php ফাইলে urlManager কম্পোনেন্টে enablePrettyUrl এবং enableStrictParsing অ্যাকটিভ করতে হয়, যাতে URL পরিষ্কার এবং সহজ হয়।

'components' => [
    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'enableStrictParsing' => true,
        'rules' => [
            'GET api/<controller:\w+>' => '<controller>/index',
            'GET api/<controller:\w+>/<id:\d+>' => '<controller>/view',
            'POST api/<controller:\w+>' => '<controller>/create',
            'PUT api/<controller:\w+>/<id:\d+>' => '<controller>/update',
            'DELETE api/<controller:\w+>/<id:\d+>' => '<controller>/delete',
        ],
    ],
],

এটি RESTful API এর জন্য URL রাউটিং কনফিগারেশন নিশ্চিত করে, যাতে প্রতিটি HTTP মেথড (GET, POST, PUT, DELETE) উপযুক্ত controller action এ রিডাইরেক্ট হয়।


RESTful Controller তৈরি করা

Yii ফ্রেমওয়ার্কে RESTful Controller তৈরি করতে, প্রথমে একটি controller ক্লাস তৈরি করতে হবে, যা yii\rest\ActiveController থেকে এক্সটেন্ড করবে।

উদাহরণ: PostController তৈরি করা

ধরা যাক, আমরা একটি ব্লগ অ্যাপ্লিকেশন তৈরি করছি এবং Post মডেল ব্যবহার করে পোস্টের ডেটা পরিচালনা করব।

  1. PostController তৈরি করা:
namespace app\controllers;

use Yii;
use app\models\Post;
use yii\rest\ActiveController;

class PostController extends ActiveController
{
    public $modelClass = 'app\models\Post';  // মডেল ক্লাসের রেফারেন্স

    // কাস্টম মেথড (যদি প্রয়োজন হয়)
    public function actionCustomAction()
    {
        return Post::find()->where(['status' => 1])->all();
    }
}
  • এখানে PostController ক্লাসটি yii\rest\ActiveController এক্সটেন্ড করছে, যা বিভিন্ন HTTP মেথডের জন্য স্ট্যান্ডার্ড অ্যাকশন যেমন index(), view(), create(), update(), এবং delete() সরবরাহ করে।
  • modelClass প্রোপার্টিতে আমরা Post মডেল ক্লাসটি উল্লেখ করেছি, যাতে controller জানে কোন মডেল থেকে ডেটা ফেচ করতে হবে।

২. Post Model তৈরি করা

এখন, Post মডেলটি তৈরি করতে হবে যাতে REST API এর মাধ্যমে ডেটা প্রক্রিয়াজাত করা যায়।

namespace app\models;

use Yii;
use yii\db\ActiveRecord;

class Post extends ActiveRecord
{
    public static function tableName()
    {
        return '{{%post}}';  // ডাটাবেস টেবিলের নাম
    }

    public function rules()
    {
        return [
            [['title', 'content'], 'required'],  // টাইটেল এবং কনটেন্ট অবশ্যই পূর্ণ করতে হবে
            [['status'], 'integer'],  // স্ট্যাটাস অবশ্যই পূর্ণসংখ্যা হতে হবে
        ];
    }
}
  • এখানে Post মডেল ক্লাসটি yii\db\ActiveRecord এক্সটেন্ড করছে, যা ডেটাবেসের টেবিলের সাথে ইন্টারঅ্যাক্ট করতে সাহায্য করে।
  • rules() মেথডে, আমরা ভ্যালিডেশন রুলস নির্ধারণ করেছি, যেমন: title এবং content ফিল্ডের জন্য required রুল।

REST API এর মাধ্যমে ডেটা পরিচালনা

এখন যে PostController তৈরি করা হয়েছে, তা দ্বারা API রিকোয়েস্টের মাধ্যমে Post মডেলের ডেটা পরিচালনা করা যাবে। বিভিন্ন HTTP মেথডে ডেটা ফেচ, সেভ, আপডেট, এবং ডিলিট করা সম্ভব হবে।

১. GET - ডেটা ফেচ করা

  • GET /api/post - সমস্ত পোস্ট ফেচ করবে।
  • GET /api/post/{id} - নির্দিষ্ট পোস্টের বিস্তারিত দেখাবে।

উদাহরণ:

GET http://yourdomain.com/api/post
GET http://yourdomain.com/api/post/1

২. POST - ডেটা সেভ করা

  • POST /api/post - নতুন পোস্ট তৈরি করবে।

উদাহরণ:

POST http://yourdomain.com/api/post
Content-Type: application/json
{
    "title": "New Post",
    "content": "This is the content of the post.",
    "status": 1
}

৩. PUT - ডেটা আপডেট করা

  • PUT /api/post/{id} - পোস্ট আপডেট করবে।

উদাহরণ:

PUT http://yourdomain.com/api/post/1
Content-Type: application/json
{
    "title": "Updated Post",
    "content": "This is the updated content.",
    "status": 1
}

৪. DELETE - ডেটা ডিলিট করা

  • DELETE /api/post/{id} - পোস্ট ডিলিট করবে।

উদাহরণ:

DELETE http://yourdomain.com/api/post/1

সারাংশ

Yii ফ্রেমওয়ার্কে RESTful Controller তৈরি করা খুবই সহজ এবং এটি yii\rest\ActiveController ক্লাস ব্যবহার করে অটোমেটিকভাবে প্রয়োজনীয় CRUD (Create, Read, Update, Delete) অপারেশন সরবরাহ করে। আপনি কাস্টম মেথড এবং অ্যাকশনও যোগ করতে পারেন যেগুলি বিশেষ ফিচার প্রোভাইড করে। Yii ফ্রেমওয়ার্কের মাধ্যমে আপনি খুব দ্রুত এবং কার্যকরভাবে RESTful API তৈরি করতে পারেন, যা বিভিন্ন ক্লায়েন্ট অ্যাপ্লিকেশনের জন্য ডেটা এক্সপোজ করতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...