REST API (Representational State Transfer Application Programming Interface) হলো একটি প্রোগ্রামিং ইন্টারফেস যা ক্লায়েন্ট এবং সার্ভারের মধ্যে HTTP প্রোটোকল ব্যবহার করে ডেটা আদান-প্রদান করে। CodeIgniter ফ্রেমওয়ার্ক ব্যবহার করে সহজেই একটি REST API তৈরি করা সম্ভব। CodeIgniter একটি লাইটওয়েট ফ্রেমওয়ার্ক হওয়ার কারণে এটি RESTful API তৈরি করতে খুবই উপযুক্ত।
এই গাইডে আমরা দেখব কীভাবে CodeIgniter দিয়ে একটি REST API তৈরি করতে হয়।
CodeIgniter এর জন্য একটি জনপ্রিয় REST API Library হল CodeIgniter REST Server। এটি REST API তৈরি করার জন্য প্রয়োজনীয় সকল ফাংশনালিটি প্রদান করে। আপনাকে এই Library টি ইনস্টল করতে হবে।
application/config/config.php
ফাইলে $config['rest_api']
সেট করুন:
$config['rest_api'] = TRUE;
এরপর application/libraries/Rest.php
ফাইলটি লোড করুন:
$this->load->library('rest');
application/config/rest.php
ফাইলে REST API এর কনফিগারেশন সেট করুন। এখানে কিছু গুরুত্বপূর্ণ কনফিগারেশন প্যারামিটার:
$config['rest_enabled'] = TRUE; // REST API সক্রিয় করা
$config['rest_auth'] = 'basic'; // Authentication টাইপ (basic, none, etc.)
$config['rest_format'] = 'json'; // রেসপন্স ফরম্যাট (json/xml)
$config['rest_valid_keys'] = array('key1', 'key2'); // অ্যাপ্লিকেশন কী (optional)
REST API তৈরি করতে একটি কাস্টম Controller তৈরি করুন, যেখানে API রাউটগুলি থাকবে। উদাহরণস্বরূপ, একটি UserController তৈরি করা হল, যা একটি GET এবং POST রিকোয়েস্ট হ্যান্ডল করবে।
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class UserController extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('UserModel'); // UserModel লোড করা
$this->load->library('rest'); // Rest Library লোড করা
}
// GET রিকোয়েস্ট হ্যান্ডলিং
public function get_user($id = NULL) {
$data = $this->UserModel->get_user($id);
if ($data) {
$this->rest->response($data, 200); // Success response
} else {
$this->rest->response(array('error' => 'No data found'), 404); // Not found
}
}
// POST রিকোয়েস্ট হ্যান্ডলিং
public function create_user() {
$user_data = $this->input->post(); // POST ডেটা গ্রহণ
if ($this->UserModel->insert_user($user_data)) {
$this->rest->response(array('message' => 'User created successfully'), 201); // Created response
} else {
$this->rest->response(array('error' => 'Failed to create user'), 400); // Bad request
}
}
}
get_user($id)
মেথডটি একটি GET রিকোয়েস্ট হ্যান্ডল করে এবং নির্দিষ্ট user ID এর তথ্য রিটার্ন করে।create_user()
মেথডটি একটি POST রিকোয়েস্ট হ্যান্ডল করে এবং নতুন ব্যবহারকারী তৈরি করে।Model তৈরি করার মাধ্যমে ডাটাবেস থেকে ডেটা নিয়ে API এর মাধ্যমে রেসপন্স পাঠানো হয়। এখানে UserModel তৈরি করা হল।
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class UserModel extends CI_Model {
public function get_user($id = NULL) {
if ($id === NULL) {
$query = $this->db->get('users');
return $query->result_array();
}
$query = $this->db->get_where('users', array('id' => $id));
return $query->row_array();
}
public function insert_user($data) {
return $this->db->insert('users', $data);
}
}
get_user($id)
মেথডটি ডাটাবেস থেকে ব্যবহারকারীর তথ্য খুঁজে বের করে।insert_user($data)
মেথডটি ডাটাবেসে নতুন ব্যবহারকারী সংরক্ষণ করে।application/config/routes.php
ফাইলে API রাউটগুলি সঠিকভাবে সেট করুন। উদাহরণ:
$route['api/users/(:num)'] = 'UserController/get_user/$1'; // GET user by ID
$route['api/users'] = 'UserController/create_user'; // POST create user
/api/users/(:num)
: একটি ব্যবহারকারীর তথ্য GET রিকোয়েস্ট দ্বারা পাওয়া যাবে।/api/users
: নতুন ব্যবহারকারী তৈরি করতে POST রিকোয়েস্ট পাঠানো হবে।CodeIgniter REST API JSON রেসপন্স প্রদান করতে নিচের কোড ব্যবহার করা হয়:
$this->rest->response($data, 200); // JSON রেসপন্স এবং HTTP স্ট্যাটাস কোড (200 = OK)
API টেস্ট করার জন্য আপনি Postman বা cURL ব্যবহার করতে পারেন।
GET Request (User by ID):
GET http://localhost/api/users/1
POST Request (Create User):
POST http://localhost/api/users
Request Body:
{
"name": "John Doe",
"email": "john.doe@example.com",
"password": "123456"
}
CodeIgniter দিয়ে REST API তৈরি করা খুবই সহজ। RESTful API ব্যবহারকারীদের JSON ফরম্যাটে ডেটা প্রদান করে এবং সেগুলিকে সহজভাবে ম্যানিপুলেট করা যায়। এই গাইডে আমরা দেখেছি কীভাবে GET, POST রিকোয়েস্ট হ্যান্ডল করা হয় এবং কীভাবে ডাটাবেস থেকে ডেটা রিটার্ন করা যায়।
Read more