[share] Bikin Web Service Di Codeigniter Sebagai Komputer Server

Bismillah…

Okeh, sembari ngabuburit menunggu magrib kita buat sebuah aplikasi sederhana kenapa sederhana karena di internet buanyak contohnya, ini cuman sekedar pengingat gw sendiri aja kali kali kalo butuh, suatu saat gw tahu harus kemana hahay.

Kalo pada bingung itu apaan sih, REST … gambarannya yang gw pahamin, gw punya data gw pengen kasih ke yang lain tanpa harus akses ke database gw semua, cukup gw kasih paramater fungsi atau metod tertentu silahkan manfaatkan data yang gw kasih, terkait security keamanannya bisa di setting, intinya lu mu data gw ya ngapain lewat akses (user dan password) cukup lewat aplikasi REST aja, atau orang biasa sebut dengan API. Okeh, langsung ya…

Senjata yang perlu kita siapkan:

  1. Codeigniter Versi 2.x
  2. Library RESTServer
  3. MY_Model
  4. Struktur Tabel Propinsi

Langkah 1:

silahkan extract CI nyah … sebagai catatan gw pake versi 2.x dan rest versi 2.6 … kalo berhasil muncul halaman kayak gini:

rest-server-1Kalo ada yang butuh format .htaccess untuk menghilangkan index.php ini dia format .htaccess ini donglot ajah ..

Note: RESTServer sekarang support CI versi 3, gw masih di versi 2 soalnya ada bbrp library di aplikasi yang udah running blm ada update nunggu dulu, jadi sekarang gw pake yang  support versi 2 dulu .. haha

Langkah 2:

Extract MY_Model ke core kayak gambar dibawah ini:

rest-server-2

Langkah 3:

Extract REST Server nya ke aplikasi yang udah kita siapkan disitu gw kasih nama (simservice), ada 3 file utama rest.php, Format.php dan REST_Controller.php, kayak gambar dibawah ini:

rest-server-3

Langkah 4:

Buat modif controller welcome, dengan perubahan code kayak gini:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); require APPPATH.'/libraries/REST_Controller.php'; function __construct() { parent::__construct(); $this->load->model('propinsimodel');
	}

class Welcome extends REST_Controller {

}

Kalo muncul kayak gini:

rest-server-4
Berarti berhasil, library gak ada yang conflict… lanjut ke langkah selanjutnya.

Langkah 5:

Kita test dengan variable static …

	public function index_get()
	{
		$words = array('Hello', 'Topidesta.wordpress.com', 'Technical Tutorial');
		$this->response($words, 200); // 200 being the HTTP response code
		// $this->load->view('welcome_message');
	}

_get() itu otomatis terdetek oleh library REST kalo itu perintah ambil data dengan _get(), dan 200 itu code international untuk respone HTTP berhasil terus Kalo output keluar kayak gini berhasil berarti:

rest-server-5

Langkah 6:

Sekarang kita test dengan data dari database okeh, buat dulu model, namanya propinsimodel.php, sebelumnya ubah dulu config database nya ya, sama autoload dulu database, terus isi dari propinsimodel.php kayak gini:

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

class PropinsiModel extends MY_Model {

	protected $_table = 'master_provinsi';
	protected $primary_key = 'provinsi_id';
	
}

sekarang kembali ke controller welcome.php, buat fungsi baru, misalkan propinsi_all_get(), dan isinya kayak gini kurang lebih:

		$data = $this->PropinsiModel->get_all();

		if($data) {
			// ada data munculin
			$this->response($data, 200); // 200 being the HTTP response code
		} else {
			// gak ada data
			$this->response(array('error' => 'Propinsi Tidak ada'), 404);
		}

Kalo berhasil muncul gambar kayak gini:
rest-server-6
Langkah 7:

Terus saya mau ambil berdasarkan id tertentu… pasti bisa… tenang… ini source nyah:

		// kita set dulu, id nyah
		$propinsi_id = $this->get('id');

		// cek ya id terset apa belum
		if(!$propinsi_id) {
			// respone zonkkk, tidak terset
			$this->response(array('error' => 'Id Tidak ada'), 404);
		}else{
			// kalo ada respon data
			$data = $this->PropinsiModel->get($propinsi_id);
			if($data) {
				$this->response($data, 200);
				// 200 being the HTTP response code
			} else {
				$this->response(array('error' => 'Propinsi tidak ada'), 404);
			}
		}

dan kalo muncul kayak gini berarti berhasil:

rest-server-7

Langkah 8 (bonus):

Kita juga bisa test dengan addons dari chrome… pake POSTman.. silahkan explorer sendiri ajalah yah… kayak gini sih:

rest-server-8

 

 

SELESAI!

Lah, delete, update, keamanannya, bisa ngelist ip mana aja yang bisa akses, mana, mana mana? tenang … itu lanjut ke catetan selanjutnya … biar sekalian, kali ini kita setting dari sisi server (alias yang tau user dan password database) nah,  mu pulang ngantor dulu ini..

ini fullsourcecode nyah: http://lb.cm/rest-server

 

Okay sekian…

Have a nice Day!

Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: