Kamis, 31 Mei 2018

Membuat Layanan RestFull API Codeigniter Serial Studi Kasus Perpustakaan Part 2

Hi kembali lagi di Coding Libray,

kali ini kita akan melanjutkan pembahasan dari Part 1 untuk konfigurasi awal membuat layanan Web Services dengan Framework Codeigniter, dan sebelum masuk pada pembahasan ini di harapkan teman-teman sudah faham cara membuat atau konfigurasi terhadap project resfull

Dan perlu di ketahui oleh  teman-teman bahwa layanan berbasis web service ini tidak memiliki sekuritas namun teman-teman bisa melakukan implementasi dengan melakukan batasan-batasan akses terhadap user, misalkan dengan menmapilkan data yang khusus di lihat atau di akses oleh user, atau teman-teman bisa menambahkan session token sehingga token dapat melakukan validasi terhadap user yang melakukan akses ke layanan web services yang teman-teman buat.

Membuat Database dan Table User sebagai autentikasi keamanan layanan webservice

CREATE DATABASE perpustakaan;
USE perpustakaan;

CREATE TABLE sys_user(
    username varchar(20) PRIMARY KEY,
    password varchar(60), 
    fullname varchar(30),
    app_token varchar(60)
);

Buatkan sebuah controller dalam folder API di controller dengan nama file Auth.php
Buatlah kode seperti berikut ini :
<?php
/**
*
*/
require APPPATH . 'libraries/REST_Controller.php';
class Auth extends REST_Controller
{

 function __construct()
 {
  parent::__construct();
  $this->load->model('validation/model','mod');
 }
 function log_get(){
  $username = $this->get('u');
  $password = $this->get('key');
  $login=$this->mod->get_login_status($username, $password);
  if($login==true){
    $this->response(array('status'=>true,'error'=>'','response'=>$this->mod->get_who($username)), REST_Controller::HTTP_OK);
  }else{
   $this->response(array('status'=>false,'error'=>'Access Rescticted','response'=>"Gagal"), REST_Controller::HTTP_OK);
  }
 }
 function registrasi_post(){
  $username=$this->post('u');
  $password=$this->post('p');
  $fullname=$this->post('f');
  $cek_data=$this->mod->cek_sudahada($username);
  if($cek_data==true){
   $this->response(array('status'=>true,'error'=>'Data '. $username .' Sudah Ada'),REST_Controller::HTTP_OK);
  }else{
   $arrayName = array('username' => $username,
        'password' => sha1($password),
        'fullname' => $fullname,
                'app_token'=>sha1($password . $fullname),
    );
   $this->db->insert('sys_user',$arrayName);
   $this->response(array('status'=>true,'error'=>'Berhasil Menyimpan data '. $username),
     REST_Controller::HTTP_OK);
  }
 }

}

Buatkan sebuah folder validation pada models dan buat sebuah file dengan nama Model.php

lalu ketikkan kode berikut pada Model.php
<?php
/**
*
*/
class Model extends CI_Model
{

 function __construct()
 {
  parent ::__construct();
 }
 function get_login_status($username, $password){
  $arrayName = array('username' => $username,'password'=>sha1($password));
  $this->db->where($arrayName);
  $this->db->limit(1);
  $query=$this->db->get('sys_user');
  return($query->num_rows() >0 ) ? $query->row() : FALSE;
 }

 function cek_sudahada($id){
  $this->db->where('username',$id);
  $query=$this->db->get('sys_user');
  return($query->num_rows() >0 ) ? $query->row() : FALSE;
 }
 function get_who($id){
  $this->db->select('username,fullname,app_token');
  $this->db->where('username',$id);
  $query=$this->db->get('sys_user');
  if($query->num_rows() >0 ){
   return $query->result_array();
  }
 }
 function cek_token($token){
  $arrayName = array('app_token' => $token);
  $this->db->where($arrayName);
  $this->db->limit(1);
  $query=$this->db->get('sys_user');
  return($query->num_rows() >0 ) ? $query->row() : FALSE;
 }
}
kita akan coba menjalankan fungsi registrasi dengan metode post dengan Postman maka hasilnya pada database akan seperti :


dan Untuk melakukan pengujian login melalui layanan web Service bisa dilakukan dengan mengirimkan beberapa parameter seperti pada gambar berikut

Sampai disini kita telah berhasil membuat authentikasi, selanjutnya setiap request harus menggunakan app_token untuk parameter request layanan webservicenya,,
sampai jumpa di tutorial berikutnya,,

Membuat Layanan RestFull API Codeigniter Serial Studi Kasus Perpustakaan Part 1

Hi Sobat Coding.

Teman-teman tau gak pemanfaatan teknologi web saat ini begitu beragam tentu saja salah satunya  membuat layanan berbasis web pun semakin bertambah.
Meskipun saat ini lagi booming banget nih Aplikasi Smartphone jika di lihat dari kamera yang pas, akan tetapi teknologi tersebut masih sangat butuh untuk dapat terhubung dengan layanan berbasis web.

Nah pada kesempatan kali ini Admin akan membahas bagaimana membuat layanan web services dengan Resfull API with Framework Codeigniter.

Dan pada pembahasan kali ini kita akan menyelesaikan sebuah studi kasus Perpustakaan dari mulai melakukan Create, Read, Update, Delete Hingga kita akan membuat transaksi Peminjaman sampai dengan Pengembalian Buku, tentu saja pada saat pengembalian akan di hitung lama pinjam buku dan akan memberikan sanksi terhadap buku yang telat dikembalikan,,

Tools

Tools yang teman-teman gunakan bisa atom / sublime / vsCode / DreamWeaver terserah teman-teman nyaman dimana,

Postman untuk melakukan uji Resfull API pada layanan web services.
teman2 bila download di website  Postman langsung


dan pada kesempatan Part ini kita akan melakukan konfigurasi awal untuk membuat layanan Web Services Restfull API With Framework Codeigniter

Step 1 Download

- Project Codeigniter di www.codeigniter.com
- project Library Codeigniter-restserver ,

Step 2 Installasi

1. Extract project Codeigniter lalu ubah hasil extract menjadi perpustakaan
2 Copykan folder Application di codeigniter-restserver lalu pastekan ke project perpustakaan dan replace All folder Application

 sehingga tampilan berikut


Menjadi Seperti
3. Ubah Configurasi
  • Base Url pada application>config>config.php menjadi $config['base_url'] = 'http://localhost/perpustakaan/';
  • libraries pada application>config>autoload.php menjadi $autoload['libraries'] = array('database'); dan setting helper menjadi $autoload['helper'] = array('url');
  • dan Ubah setting database untuk username=>'root', 'password'=>'db_password jika menggunakan password', dan 'database' => 'perpustakaan' . karena kita akan membuat nama database dengan nama perpustakaan
sampai disini kita telah berhasil melakukan konfigurasi awal, kita akan lanjut pada part berikutnya yaitu membuat database, table dan membuat autentikasi sebagai Sekurity terhadap resfull yang akan kita buat,
oke sampai jumpa di part 2 membuat resfull API