API (Application Programming Interface) হল একটি ইন্টারফেস যা বিভিন্ন সিস্টেমের মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়। CodeIgniter একটি শক্তিশালী ফ্রেমওয়ার্ক যা RESTful API তৈরি করার জন্য সহজ পদ্ধতি সরবরাহ করে। RESTful API তৈরির জন্য HTTP মেথডগুলি (যেমন GET, POST, PUT, DELETE) ব্যবহার করা হয়, এবং CodeIgniter এ এই মেথডগুলির মাধ্যমে ডেটা পরিচালনা করা যায়।
এই টিউটোরিয়ালে, আমরা API endpoints এবং HTTP মেথডগুলো নিয়ে আলোচনা করবো এবং দেখাবো কীভাবে CodeIgniter ব্যবহার করে GET, POST, PUT, এবং DELETE মেথডের মাধ্যমে API তৈরি করা যায়।
RESTful API Endpoints এবং Methods
RESTful API তৈরির জন্য প্রধানত চারটি HTTP মেথড ব্যবহৃত হয়:
- GET: ডেটা পড়তে ব্যবহৃত হয়।
- POST: নতুন ডেটা তৈরি করতে ব্যবহৃত হয়।
- PUT: বিদ্যমান ডেটা আপডেট করতে ব্যবহৃত হয়।
- DELETE: ডেটা মুছে ফেলতে ব্যবহৃত হয়।
CodeIgniter এ API তৈরি করার জন্য ধাপসমূহ
১. Controller তৈরি
প্রথমে একটি API কন্ট্রোলার তৈরি করতে হবে যেখানে API endpoints এবং HTTP মেথডগুলির জন্য মেথডগুলো থাকবে।
১.1 API Controller (ApiController.php)
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class ApiController extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->database(); // ডাটাবেস লোড
$this->load->helper('url'); // URL হেল্পার লোড
}
// GET: Retrieve a list of users
public function get_users() {
$query = $this->db->get('users'); // users টেবিল থেকে ডেটা পাওয়া
$data = $query->result_array();
echo json_encode($data); // JSON রেসপন্স
}
// POST: Create a new user
public function create_user() {
$data = json_decode(file_get_contents('php://input'), true); // JSON রিকোয়েস্ট ডেটা
$this->db->insert('users', $data); // ডেটা ইনসার্ট করা
echo json_encode(['status' => 'success', 'message' => 'User created successfully']);
}
// PUT: Update an existing user
public function update_user($id) {
$data = json_decode(file_get_contents('php://input'), true); // JSON রিকোয়েস্ট ডেটা
$this->db->where('id', $id);
$this->db->update('users', $data); // ডেটা আপডেট করা
echo json_encode(['status' => 'success', 'message' => 'User updated successfully']);
}
// DELETE: Delete a user
public function delete_user($id) {
$this->db->where('id', $id);
$this->db->delete('users'); // ডেটা ডিলিট করা
echo json_encode(['status' => 'success', 'message' => 'User deleted successfully']);
}
}
get_users()মেথডটিGETরিকোয়েস্টের মাধ্যমেusersটেবিল থেকে সমস্ত ব্যবহারকারীর তথ্য সংগ্রহ করে এবং JSON আকারে রিটার্ন করে।create_user()মেথডটিPOSTরিকোয়েস্টের মাধ্যমে নতুন ব্যবহারকারী তৈরি করে।update_user($id)মেথডটিPUTরিকোয়েস্টের মাধ্যমে একটি বিদ্যমান ব্যবহারকারীকে আপডেট করে।delete_user($id)মেথডটিDELETEরিকোয়েস্টের মাধ্যমে একটি ব্যবহারকারী মুছে ফেলে।
২. Routes সেটআপ
application/config/routes.php ফাইলে API endpoints রাউটিং সেটআপ করুন।
$route['api/users'] = 'ApiController/get_users'; // GET all users
$route['api/user/create'] = 'ApiController/create_user'; // POST create user
$route['api/user/update/(:num)'] = 'ApiController/update_user/$1'; // PUT update user
$route['api/user/delete/(:num)'] = 'ApiController/delete_user/$1'; // DELETE delete user
এখানে:
/api/users: সমস্ত ব্যবহারকারীর তালিকা দেখানোর জন্যGETরিকোয়েস্ট।/api/user/create: নতুন ব্যবহারকারী তৈরি করার জন্যPOSTরিকোয়েস্ট।/api/user/update/{id}: নির্দিষ্ট ব্যবহারকারী আপডেট করার জন্যPUTরিকোয়েস্ট।/api/user/delete/{id}: নির্দিষ্ট ব্যবহারকারী মুছে ফেলার জন্যDELETEরিকোয়েস্ট।
CodeIgniter API এর মাধ্যমে HTTP মেথড ব্যবহার
১. GET মেথড (ডেটা পড়া)
GET মেথড API কল ব্যবহারকারীর কাছে ডেটা পাঠানোর জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, সমস্ত ব্যবহারকারীর তালিকা বের করার জন্য:
API Call (GET):
GET http://localhost/your_project/api/users
Response (JSON):
[
{
"id": 1,
"name": "John Doe",
"email": "john.doe@example.com"
},
{
"id": 2,
"name": "Jane Doe",
"email": "jane.doe@example.com"
}
]
২. POST মেথড (নতুন ডেটা তৈরি)
POST মেথড ব্যবহারকারী থেকে ডেটা গ্রহণ করে এবং ডাটাবেসে নতুন রেকর্ড যোগ করে।
API Call (POST):
POST http://localhost/your_project/api/user/create
Content-Type: application/json
Body:
{
"name": "New User",
"email": "new.user@example.com"
}
Response (JSON):
{
"status": "success",
"message": "User created successfully"
}
৩. PUT মেথড (ডেটা আপডেট)
PUT মেথড ব্যবহারকারী থেকে নতুন ডেটা গ্রহণ করে এবং একটি বিদ্যমান রেকর্ড আপডেট করে।
API Call (PUT):
PUT http://localhost/your_project/api/user/update/1
Content-Type: application/json
Body:
{
"name": "Updated User",
"email": "updated.user@example.com"
}
Response (JSON):
{
"status": "success",
"message": "User updated successfully"
}
৪. DELETE মেথড (ডেটা মুছে ফেলা)
DELETE মেথড একটি নির্দিষ্ট ডেটা মুছে ফেলার জন্য ব্যবহার করা হয়।
API Call (DELETE):
DELETE http://localhost/your_project/api/user/delete/1
Response (JSON):
{
"status": "success",
"message": "User deleted successfully"
}
API সুরক্ষা
এটি গুরুত্বপূর্ণ যে আপনি আপনার API গুলিকে সুরক্ষিত রাখবেন। API সুরক্ষার জন্য API Key, OAuth বা JWT (JSON Web Tokens) ব্যবহার করা যেতে পারে। CodeIgniter-এ Authorization হেডার চেক করে সুরক্ষা নিশ্চিত করা সম্ভব।
CodeIgniter-এ API endpoints তৈরি করা সহজ এবং কার্যকরী। GET, POST, PUT, এবং DELETE মেথড ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশন থেকে ডেটা প্রক্রিয়া এবং পরিচালনা করতে পারেন। এটি RESTful API তৈরির জন্য একটি কার্যকরী পদ্ধতি এবং আপনাকে JSON ডেটা বিনিময় করতে সাহায্য করে।
Read more