Tutorial Membuat REST API Sederhana dengan Codeigniter dan JWT

Pengertian REST API

RESTful API / REST API merupakan implementasi dari API (Application Programming Interface). REST (Representional State Transfer) adalah suatu arsitektur metode komunikasi yang menggunakan protokol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi. Dimana tujuannya adalah untuk menjadikan sistem yang memiliki performa yang baik, cepat dan mudah untuk di kembangkan (scale) terutama dalam pertukaran dan komunikasi data . 

Untuk pertama-tama kalian dapat membuat Database dengan nama bebas lalu buat struktur tabel seperti gambar di bawah ini(saya menggunakan phpmyadmin).

Table - Tutorial Membuat REST API Sederhana dengan Codeigniter dan JWT

Tutorial Membuat REST API dengan Codeigniter dan JWT

Download semua yang diperlukan :
  1. Framework Codeigniter 3.1.5 (https://codeigniter.com/download)
  2. Library PHP-JWT  (https://github.com/firebase/php-jwt
  3. Library REST Server (https://github.com/chriskacerguis/codeigniter-restserver)
  4. Postman (https://www.postman.com/downloads/)
Setelah semua yang diperlukan di download lalu kita buka text editor kita.
     
1. Langkah Pertama. Buka controller, buat file baru namanya 'Api.php', dan biarkan saja controller bawaan yang telah kita download tadi, lalu ikuti kode dibawah ini.

<?php 
defined('BASEPATH') OR exit('No direct script access allowed');

class Api extends REST_Controller {


public function index()
{
$this->load->view('json');

}

public function login()
{
$this->form_validation->set_rules('username','username','required|max_length[256]');
$this->form_validation->set_rules('password','password','required|min_length[2]|max_length[256]');
return Validation::validate($this, '', '', function($token, $output)
{
$username = $this->input->post('username');
$password = $this->input->post('password');
$id = $this->M_api->login($username, $password);
if ($id != false) {
$token = array();
$token['id'] = $id;
$output['status'] = true;
$output['username'] = $username;
$output['token'] = JWT::encode($token, $this->config->item('jwt_key'));
}
else
{
$output['errors'] = '{"type": "invalid"}';
}
return $output;
});
}

public function list_produk()
{
return Validation::validate($this, 'user', 'read', function($token, $output)
{
$list = $this->M_api->get_list_produk();
foreach($list->result() as $data) 
{
$output[] = array('id_produk' => $data->id_produk, 
'nama' => $data->nama,
'harga' => $data->harga
);
$output['status'] = true;
}
return $output;
});
}

public function detail_produk()
{
$this->form_validation->set_rules('id_produk','id_produk', 'required|max_length[256]');
return Validation::validate($this, 'user', 'read', function($token, $output)
{
$detail = $this->M_api->detail_produk($this->input->post('id_produk'));
foreach($detail->result() as $data) 
{
$output = array('id_produk' => $data->id_produk, 
'nama' => $data->nama,
'deskripsi' => $data->deskripsi,
'harga' => $data->harga
);
$output['status'] = true;
}
return $output;
});
}

public function transaksi()
{
$this->form_validation->set_rules('order', 'order', 'required');
return Validation::validate($this, 'user', 'read', function($token, $output)
{
$parse = json_decode($this->input->post('order',true),true);
$id_user = $parse[0]['id_user'];
$lokasi = $parse[0]['lokasi'];
$alamat = $parse[0]['alamat'];
$detail = $parse[0]['myorder'];
$total = $detail['total'];

 //insert tabel transaksi
$insert_trans = array('tanggal' => date('Y-m-d'), 
'id_user' => $id_user,
'total' => $total,
'lokasi' => $lokasi,
'alamat' => $alamat
);

$this->db->insert('transaksi',$insert_trans);
$id_transaksi = $this->db->insert_id();

foreach ($detail['detail'] as $data) {
$nama[] = $data['nama'];
$id_produk[] = $data['id_menu'];
$qty[] = $data['qty'];
$insert_det = array('id_transaksi' => $id_transaksi, 
'id_produk' => $data['id_menu'],
'qty' => $data['qty'],
);
$this->db->insert('detail_transaksi',$insert_det);
}
$output['pesan'] = "berhasil";
$output['status'] = true;
return $output;
});
}

}
 
2. Langkah Kedua. Lalu buat model dengan nama M_api.php dan ikuti kode dibawah berikut.

<?php if (! defined('BASEPATH')) EXIT ('No direct script access allowed');

class M_api extends CI_Model {

public function login($username, $password)
{
$query = $this->db->query("SELECT * from user_danar where username ='$username' and status = 'active'");
if ($query->num_rows() == 1) 
{
foreach ($query->result() as $data) {
$password_db = $data->password;
if ($password_db == md5($password)) {
return true;
} else {
return false;
}

}
else
{
return false;
}

public function get_list_produk()
{
return $this->db->get('produk_danar');
}

public function detail_produk($id)
{
$query = $this->db->query("SELECT * from produk_danar where id_produk = '$id'");
return $query;
}
}
 
3. Langkah Ketiga. Melakukan percobaan untuk mendapatkan token.
  • Pertama buat data dumy pada user(contoh: username = danar, password = danar).
  • Kedua masukan username dan password pada postman untuk mendapatkan data json dan token.
  • Ketiga let's try.  
Result - Tutorial Membuat REST API Sederhana dengan Codeigniter dan JWT

Yuppdan itulah hasilnya kita telah mendapatkan token yang kita buat dengan REST API sederhana. Terima kasih yang sudah mengikuti sampai akhir.














Comments