RESTful API এর ধারণা

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter এর RESTful API তৈরি |

RESTful API (Representational State Transfer) হলো একটি আর্কিটেকচারাল স্টাইল যা ওয়েব সার্ভিস নির্মাণের জন্য ব্যবহৃত হয়। এটি HTTP প্রোটোকল এবং HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান করে। CodeIgniter ফ্রেমওয়ার্কে RESTful API তৈরি করার জন্য একটি সহজ এবং কার্যকরী পদ্ধতি রয়েছে।


RESTful API কী?

RESTful API একটি এপিআই (অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস) যা REST (Representational State Transfer) পদ্ধতি অনুসরণ করে। এটি একটি স্ট্যান্ডার্ড ডিজাইন প্যাটার্ন, যা HTTP প্রোটোকল এবং রিসোর্স ভিত্তিক আর্কিটেকচার ব্যবহার করে সার্ভার এবং ক্লায়েন্টের মধ্যে যোগাযোগ পরিচালনা করে।

RESTful API এর প্রধান বৈশিষ্ট্য:

  1. Stateless: সার্ভার প্রতিটি রিকোয়েস্টের জন্য স্বতন্ত্রভাবে কাজ করে। আগের রিকোয়েস্টের কোন তথ্য সংরক্ষিত থাকে না।
  2. Client-Server Architecture: ক্লায়েন্ট এবং সার্ভার আলাদা আলাদা থাকে, এবং তারা নির্দিষ্ট API এর মাধ্যমে একে অপরের সাথে যোগাযোগ করে।
  3. Cacheable: ডেটা ক্যাশ করা যায়, যাতে পারফরম্যান্স বৃদ্ধি পায়।
  4. Uniform Interface: সমস্ত রিসোর্স (ডেটা) একটি নির্দিষ্ট কনভেনশন অনুসরণ করে অ্যাক্সেস করা হয়।

HTTP Methods (পদ্ধতি)

RESTful API এ বিভিন্ন HTTP মেথড ব্যবহার করা হয় ডেটা পরিচালনার জন্য:

HTTP Methodবর্ণনা
GETসার্ভার থেকে ডেটা রিট্রিভ করা।
POSTনতুন ডেটা সার্ভারে আপলোড করা।
PUTবিদ্যমান ডেটা আপডেট করা।
DELETEডেটা সার্ভার থেকে মুছে ফেলা।

CodeIgniter এ RESTful API তৈরি

CodeIgniter তে RESTful API তৈরি করতে, সাধারণত REST Controller এবং HTTP methods ব্যবহৃত হয়। এছাড়া, আপনি codeigniter-restserver লাইব্রেরি ব্যবহার করে সহজেই API তৈরি করতে পারেন।

ধাপ ১: codeigniter-restserver লাইব্রেরি ইনস্টল করা

  1. প্রথমে, CodeIgniter-এ RESTful API ফিচার সক্রিয় করার জন্য codeigniter-restserver লাইব্রেরি ইনস্টল করতে হবে।
  2. Composer ব্যবহার করে লাইব্রেরি ইনস্টল করতে হবে:

    composer require chriso/codeigniter-restserver
    

ধাপ ২: Controller তৈরি করা

CodeIgniter এ API তৈরি করতে একটি কাস্টম কন্ট্রোলার তৈরি করুন, যেটি GET, POST, PUT, DELETE মেথডগুলির মাধ্যমে ডেটা গ্রহণ এবং প্রেরণ করতে পারে।

উদাহরণ: ApiController.php কন্ট্রোলার
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

use Restserver\Libraries\REST_Controller;

class ApiController extends REST_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('User_model'); // মডেল লোড
    }

    // GET Request - User ডেটা রিটার্ন
    public function user_get($id = NULL) {
        if ($id === NULL) {
            $users = $this->User_model->get_users();
            $this->response($users, REST_Controller::HTTP_OK);
        } else {
            $user = $this->User_model->get_user($id);
            if ($user) {
                $this->response($user, REST_Controller::HTTP_OK);
            } else {
                $this->response(['message' => 'User not found'], REST_Controller::HTTP_NOT_FOUND);
            }
        }
    }

    // POST Request - নতুন User তৈরি
    public function user_post() {
        $data = $this->post();
        $result = $this->User_model->create_user($data);
        if ($result) {
            $this->response(['message' => 'User created successfully'], REST_Controller::HTTP_CREATED);
        } else {
            $this->response(['message' => 'User creation failed'], REST_Controller::HTTP_BAD_REQUEST);
        }
    }

    // PUT Request - User আপডেট করা
    public function user_put($id) {
        $data = $this->put();
        $result = $this->User_model->update_user($id, $data);
        if ($result) {
            $this->response(['message' => 'User updated successfully'], REST_Controller::HTTP_OK);
        } else {
            $this->response(['message' => 'User update failed'], REST_Controller::HTTP_BAD_REQUEST);
        }
    }

    // DELETE Request - User ডিলিট করা
    public function user_delete($id) {
        $result = $this->User_model->delete_user($id);
        if ($result) {
            $this->response(['message' => 'User deleted successfully'], REST_Controller::HTTP_OK);
        } else {
            $this->response(['message' => 'User deletion failed'], REST_Controller::HTTP_BAD_REQUEST);
        }
    }
}
Controller ব্যাখ্যা:
  • GET method: /user অথবা /user/{id} রিকোয়েস্টে ব্যবহারকারীদের তথ্য রিটার্ন করে।
  • POST method: /user রিকোয়েস্টে নতুন ইউজার তৈরি করা হয়।
  • PUT method: /user/{id} রিকোয়েস্টে ব্যবহারকারী তথ্য আপডেট করা হয়।
  • DELETE method: /user/{id} রিকোয়েস্টে ব্যবহারকারী তথ্য ডিলিট করা হয়।

ধাপ ৩: Routes সেটআপ

application/config/routes.php ফাইলে রাউটিং সেটআপ করুন:

$route['api/user/(:num)'] = 'ApiController/user_get/$1'; // GET request to fetch user by ID
$route['api/user'] = 'ApiController/user_post'; // POST request to create new user
$route['api/user/(:num)'] = 'ApiController/user_put/$1'; // PUT request to update user
$route['api/user/(:num)'] = 'ApiController/user_delete/$1'; // DELETE request to delete user

CodeIgniter এ RESTful API এর সুবিধা

  1. এমভিসি স্ট্রাকচার: CodeIgniter MVC স্ট্রাকচারের মাধ্যমে API তৈরি করা সহজ।
  2. ডেটা অ্যাক্সেসের জন্য RESTful স্টাইল: API রিকোয়েস্ট গুলি স্পষ্ট এবং স্ট্যান্ডার্ড।
  3. HTTP মেথড সাপোর্ট: API বিভিন্ন HTTP মেথড (GET, POST, PUT, DELETE) সাপোর্ট করে, যা ডেটা সংগ্রহ, তৈরি, আপডেট এবং ডিলিট করতে সক্ষম।
  4. JSON রেসপন্স: JSON ফরম্যাটে ডেটা আদান-প্রদান করা হয়, যা ওয়েব এবং মোবাইল অ্যাপ্লিকেশনগুলির মধ্যে ডেটা আদান-প্রদানকে সহজ করে তোলে।

CodeIgniter-এ RESTful API তৈরি করা খুবই সহজ এবং কার্যকরী। এটি ব্যবহারকারীদের HTTP মেথড ব্যবহার করে ডেটা আদান-প্রদান করতে এবং বিভিন্ন রিসোর্স অ্যাক্সেস করতে সক্ষম করে। CodeIgniter এর সাহায্যে RESTful API দ্রুত তৈরি করা সম্ভব, যা আপনার অ্যাপ্লিকেশনকে আরও স্কেলেবল এবং ইন্টারঅ্যাকটিভ করে তোলে।

Content added By
Promotion