Pada kesempatan kali ini, kita coba membuat restful dengan framework Codeigniter. Untuk persiapan yang kita butuhkan dalam tutorial kali ini adalah sebagai berikut :
- Install aplikasi Xampp, yang dapat didownload pada halaman ini
- Framework Codeigniter
- Database tutorial_rumah_coding dengan table siswa yang sebelumnya telah kita gunakan pada tutorial ini
- Instal aplikasi postman, yang dapat didownload pada halaman ini
- Instal Composer, yang dapat didownload pada halaman ini
Setelah tools yang kita butuhkan berhasil dijalankan, langkah pertama adalah kita perlu menginstall library untuk Codeigniter agar dapat membuat restful api. kita dapat menemukan library ini pada github atau packagist dengan kata kunci “codeigniter rest”. Adapun cara installnya adalah sebagai berikut :
Jika instalasi sukses, maka akan muncul didalam project Codeigniter kita folder bernama ‘codeigniter-restserver’ dimana didalam folder tersebut ada beberapa file yang perlu kita copy kedalam folder tutorialrumahcoding/application/. Adapun file tersebut adalah sebagai berikut :
- copy file idap.php dan rest.php yang terdapat pada tutorialrumahcoding/codeigniter-restserver/application/config kedalam folder tutorialrumahcoding/application/ config
- copy file db_helper.php yang terdapat pada tutorialrumahcoding/codeigniter-restserver/application/helpers kedalam folder tutorialrumahcoding/application/ helpers
- copy file Format.php dan REST_Controller.php yang terdapat pada tutorialrumahcoding/codeigniter-restserver/application/libraries kedalam folder tutorialrumahcoding/application/ libraries
Selanjutnya Kita Coba Membuat Model dengan nama file SiswaModel.php didalam folder tutorialrumahcoding/application/ Models. Berikut baris Perintahnya :
<?php
class SiswaModel extends CI_Model{
// response jika field ada yang kosong
public function empty_response(){
$response['status']=502;
$response['error']=true;
$response['message']='Field tidak boleh kosong';
return $response;
}
// function untuk insert data ke tabel siswa
public function add_person($nama,$email,$password,$telepon,$pelajaran){
if(empty($nama) || empty($email) || empty($password) || empty($telepon) || empty($pelajaran)){
return $this->empty_response();
}else{
$data = array(
"nama"=>$nama,
"email"=>$email,
"password"=>$password,
"telepon"=>$telepon,
"pelajaran"=>$pelajaran
);
$insert = $this->db->insert("siswa", $data);
if($insert){
$response['status']=200;
$response['error']=false;
$response['message']='Data siswaditambahkan.';
return $response;
}else{
$response['status']=502;
$response['error']=true;
$response['message']='Data siswagagal ditambahkan.';
return $response;
}
}
}
// mengambil semua data siswa
public function all_person(){
$all = $this->db->get("siswa")->result();
$response['status']=200;
$response['error']=false;
$response['data']=$all;
return $response;
}
}
?>
Kemudian buat sebuah Controllers dengan nama Siswa.php didalam folder
tutorialrumahcoding/application/ controllers. Berikut baris perintahnya :
<?php
require APPPATH . 'libraries/REST_Controller.php';
class Siswa extends REST_Controller{
// construct
public function __construct(){
parent::__construct();
$this->load->model('SiswaModel');
}
// method index untuk menampilkan semua Data Siswa menggunakan method get
public function index_get(){
$response = $this->SiswaModel->all_person();
$this->response($response);
}
// untuk menambah Data Siswa menaggunakan method post
public function add_post(){
$response = $this->SiswaModel->add_person(
$this->post('nama'),
$this->post('email'),
$this->post('password'),
$this->post('telepon'),
$this->post('pelajaran')
);
$this->response($response);
}
}
?>
Setelah Controllers dan Modelnya kita buat, saatnya kita coba memasukkan data kedalam database dengan method post dan mengambil data dengan method get menggunakan aplikasi postman. Pertama kita coba untuk memasukkan data kedalam database dengan cara berikut :
Saat memasukkan data dengan method POST, maka hasilnya akan terlihat seperti ini :
Kemudian coba mengambil data menggunakan method GET seperti ini :
Maka hasilnya akan terlihat seperti ini :