Image

TẠO 1 RESTFUL API TRONG CODEIGNITER



Codeigniter là một framework PHP mạnh và đơn giản cho việc phát triển các ứng dụng web. Có nhiều tình huống mà các ứng dụng nền tảng Web cần giao tiếp với các ứng dụng khác trên nền web, và khi đó chúng ta cần dùng RESTful API. Nếu ứng dụng web của bạn có dùng API thì ứng dụng có thể dễ dàng giao tiếp với các ứng dụng khác, bởi vì API hiện là một phần quan trọng trong các ứng dụng trên nền web.

REST API là gì ?

Chúng ta biết REST viết đầy đủ ra là Representational State Transfer. REST API là dạng dịch vụ web sử dụng các phương thức khác nhau của HTTP như POST, PUT, GET và DELETE để trao đổi dữ liệu trên nền tảng web.

Bây giờ, chúng ta đang tự hỏi tại sao cần phải thực hiện API cho các ứng ụng web ? Nếu bạn tạo API cho ứng dụng của bạn, thì bạn có thể dễ dàng tạo ra ứng dụng di động cho ứng dụng web của bạn. Bởi vì, trong ứng dụng di động, bạn cần phần gửi và nhận dữ liệu thông qua việc dùng API. Một cái lợi khác của việc thực hiện các dịch vụ web qua REST API, bạn có thể phát triển ứng dụng web và di động thông qua việc dùng chung cơ sở dữ liệu và bạn có thể lấy data từ cả ứng dụng web và ứng dụng di động cùng 1 lúc. Vì thế, đây là lợi ích quan trọng trong việc phát triểu API cho ứng dụng web của bạn.

Trong bài viết này, chúng tôi sẽ chia sẻ các cách thức để tạo ra restful web services với framework CodeIgniter 3. Chúng ta sẽ tạo ra REST API trong CodeIgniter sử dụng hoạt động CRUD: Insert, Update Delete, Create dữ liệu mysql.

Bài viết này, chúng tôi sẽ không sử dụng bất kỳ thư viện CodeIgniter nào để thực hiện CRUD RESTful API, mà chỉ tạo CRUD API thủ công. Bạn có thể đi theo quy trình thực hiện từng bước bên dưới để thực hiện CRUD API trong CodeIgniter.

+ Tạo Table
+ Kết nối CSDL
+ Tạo API  Controller
+ Tạo API Model
+ Tạo Test API Controller
+ Tạo View file trả kết quả.

TẠO BẢNG

Đầu tiên, chúng ta cần phải tạo bảng trong cơ sở dữ liệu MySQL. Ta chạy code SQL trong phpmyadmin, sẽ tạo ra bảng tbl_sample như sau:

 --
-- Database: `testing`
--

-- --------------------------------------------------------

--
-- Table structure for table `tbl_sample`
--

CREATE TABLE `tbl_sample` (
  `id` int(11) NOT NULL,
  `first_name` varchar(250) NOT NULL,
  `last_name` varchar(250) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tbl_sample`
--
ALTER TABLE `tbl_sample`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `tbl_sample`
--
ALTER TABLE `tbl_sample`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;

KẾT NỐI CƠ SỞ DỮ LIỆU

Khi bạn tạo ra bảng trong cơ sở dữ liệu mysql xong, bạn vào trong CodeIgniter, mở mục application/config/database.php và chỉ định cho nó cấu hình database mysql.

<?php

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
 'dsn' => '',
 'hostname' => 'localhost',
 'username' => 'root',
 'password' => '',
 'database' => 'testing',
 'dbdriver' => 'mysqli',
 'dbprefix' => '',
 'pconnect' => FALSE,
 'db_debug' => (ENVIRONMENT !== 'production'),
 'cache_on' => FALSE,
 'cachedir' => '',
 'char_set' => 'utf8',
 'dbcollat' => 'utf8_general_ci',
 'swap_pre' => '',
 'encrypt' => FALSE,
 'compress' => FALSE,
 'stricton' => FALSE,
 'failover' => array(),
 'save_queries' => TRUE
);

?>

TẠO API CONTROLLER

Bây giờ, chúng ta cần phải nắm cách nào để tạo dịch vụ web RESTful API trong codeigniter. Vì vậy, đầu tiên, chúng ta cần phải tạo ra 1 API controller để gửi và nhận API HTTP request. Class này sẽ nhận các HTTP request để gửi data ở định dạng Json  và nhận về dữ liệu thông qua việc sử dụng các HTTP request khác nhau. Trong class này, chúng ta tạo ra các phương thức để thực hiện các HTTP request.

application/controllers/Api.php
 

load->model('api_model');
  $this->load->library('form_validation');
 }

 function index()
 {
  $data = $this->api_model->fetch_all();
  echo json_encode($data->result_array());
 }
 
 function insert()
 {
  $this->form_validation->set_rules("first_name", "First Name", "required");
  $this->form_validation->set_rules("last_name", "Last Name", "required");
  $array = array();
  if($this->form_validation->run())
  {
   $data = array(
    'first_name' => trim($this->input->post('first_name')),
    'last_name'  => trim($this->input->post('last_name'))
   );
   $this->api_model->insert_api($data);
   $array = array(
    'success'  => true
   );
  }
  else
  {
   $array = array(
    'error'    => true,
    'first_name_error' => form_error('first_name'),
    'last_name_error' => form_error('last_name')
   );
  }
  echo json_encode($array, true);
 }

 function fetch_single()
 {
  if($this->input->post('id'))
  {
   $data = $this->api_model->fetch_single_user($this->input->post('id'));
   foreach($data as $row)
   {
    $output['first_name'] = $row["first_name"];
    $output['last_name'] = $row["last_name"];
   }
   echo json_encode($output);
  }
 }

 function update()
 {
  $this->form_validation->set_rules("first_name", "First Name", "required");
  $this->form_validation->set_rules("last_name", "Last Name", "required");
  $array = array();
  if($this->form_validation->run())
  {
   $data = array(
    'first_name' => trim($this->input->post('first_name')),
    'last_name'  => trim($this->input->post('last_name'))
   );
   $this->api_model->update_api($this->input->post('id'), $data);
   $array = array(
    'success'  => true
   );
  }
  else
  {
   $array = array(
    'error'    => true,
    'first_name_error' => form_error('first_name'),
    'last_name_error' => form_error('last_name')
   );
  }
  echo json_encode($array, true);
 }

 function delete()
 {
  if($this->input->post('id'))
  {
   if($this->api_model->delete_single_user($this->input->post('id')))
   {
    $array = array(
     'success' => true
    );
   }
   else
   {
    $array = array(
     'error' => true
    );
   }
   echo json_encode($array);
  }
 }
 
}

Trong Controller trên, có các phần cần chú ý như sau:

__construct() : Đây là hàm cấu trúc, thực thi khi đối tượng của class được tạo ra và nó sẽ nạp API model và thư viện codeigniter.


BÀI VIẾT KHÁC

6 SỰ THUẬT BẠN CẦN PHẢI BIẾT ĐỂ CHẾ NGỰ THƯƠNG MẠI ĐIỆN TỬ TRONG NĂM 2020

CORE WEB VITALS – CHỈ SỐ THIẾT YẾU CỦA WEB: CÁC YẾU TỐ XẾP HẠNG CHÍNH THỨC CỦA GOOGLE

CÁC CÁCH THỨC XÂY DỰNG CONTENT MARKETING HIỆU QUẢ - PHẦN 2

CÁC KẾ HOẠCH XÂY DỰNG CONTENT MARKETING - PHẦN 2

CÁC CHIẾN THUẬT XÂY DỰNG NỘI DUNG MARKETING

TẠO 1 RESTFUL API TRONG CODEIGNITER

CÁCH ĐỂ PHÁT HIỆN VÀ XÓA BỎ CÁC SPAM HACK CHO WEBSITE WORDPRESS

36 TIỆN ÍCH CHROME (CHROME EXTENSIONS) HỮU ÍCH CHO SEOs - PHẦN 1

SEO NĂM 2020: NHỮNG ĐIỀU CƠ BẢN BẠN CẦN BIẾT ĐỂ CÓ THỂ THÀNH CÔNG

BÀI 1- TỪNG BƯỚC ĐỂ TẠO 1 REST API ĐƠN GIẢN BẰNG PHP

5 CÁCH THỨC ĐỂ KIẾM TIỀN TRÊN 1 BLOG NĂM 2020 – LỜI KHUYÊN TỪ 1 BLOG THỰC SỰ ĐÃ KIẾM ĐƯỢC TIỀN

CÁCH THỨC TỐI ƯU HÓA TỐC ĐỘ LOAD TRANG CỦA WEBSITE

CÁCH THỨC TỐI ƯU HÓA LANDING PAGES THU HÚT NGƯỜI DÙNG

16 PLUGIN BẢO MẬT WORDPRESS PHỔ BIẾN 2019

HACKER HACK WEBSITE WORDPRESS NHƯ THẾ NÀO ?

CHỨNG THỰC SSL CHO WEBSITE

CÁC KỸ THUẬT HACKING KHIẾN WEBSITE WORDPRESS BỊ “TRỌNG THƯƠNG” - PHẦN 2

CÁC KỸ THUẬT HACKING KHIẾN WEBSITE WORDPRESS BỊ “TRỌNG THƯƠNG” - PHẦN 1

TOP 40+ CÔNG CỤ KINH DOANH ONLINE NĂM 2020 NHÀ KINH DOANH CẦN CÓ - PHẦN 5

TOP 40+ CÔNG CỤ KINH DOANH ONLINE NĂM 2020 NHÀ KINH DOANH CẦN CÓ - PHẦN 4

Thiết kế bởi @Webdeponline.vn | Tags: Website chuẩn SEO, giá rẻ, giao diện đẹp, website giá 1 triệu đồng