Monday, June 9, 2014

REST Pada Codeigniter

REST merupakan singkatan dari representational state transfer, atau bisa disebut juga gaya arsitektur dalam membangun sebuah perangkat lunak yang melibatkan HTTP. Pengertian tersebut masih penyimpulan saya saja, jika ingin mengetahui lebih lanjut masalah REST bisa explorasi sendiri. Saya disini hanya ingin membahas untuk mengimplementasi REST pada codeigniter. Sehingga dapat dibuat sebuah API yang hanya menyediakan data yang dibuat menggunakan Codeigniter dengan REST. Data tersebut dapat berupa array dengan format JSON maupun XML. Tetapi saya lebih suka menggunakan JSON karena nanti pada sisi client pengambilan data JSON menggunakan javascript. 

Pertama yang kita lakukan adalah menyiapkan Framework Codeigniter. Silahkan download codeigniter dengan versi yang terbaru, atau bisa download versi yang saya gunakan yang sudah saya config dan saya tambahkan .htaccesss dan saya tambahkan HMVC. Codeigniter yang saya gunakan disini adalah versi 2.2.0

Setelah itu download restserver disini. Setelah terdownload drag and drop sesuai dengan penempatannya file dibawah ini di folder codeigniter yang sudah kita siapkan tadi.

application/libraries/Format.php
application/libraries/REST_Controller.php
application/config/rest.php

konfigurasi rest codeigniter untuk server sudah selesai, hanya 3 file diatas yang diperlukan. Masalah selanjutnya adalah bagaimana cara membuat untuk GET, POST, PUT, dan sebagainya pada restserver tersebut. Berikut saya berikan contoh script yang saya gunakan saja. disini kita hanya main di Controller dan models saja karena memang tujuannya untuk membuat data dan menkonfersinya dalam bentuk array dengan format JSON atau XML. Terusterang saya bingung ingin menjelaskannya, berikut scriptnya silahkan dibaca sekilas. Saya tidak menampilkan untuk databasenya. 

untuk controller :

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

/**
 * Example
 *
 * This is an example of a few basic user interaction methods you could use
 * all done with a hardcoded array.
 *
 * @package CodeIgniter
 * @subpackage Rest Server
 * @category Controller
 * @author Phil Sturgeon
 * @link http://philsturgeon.co.uk/code/
*/

// This can be removed if you use __autoload() in config.php OR use Modular Extensions
require APPPATH.'/libraries/REST_Controller.php';

class c_laporan extends REST_Controller
{
public function __construct(){
parent:: __construct();
$this->load->model(array('m_laporan'));
}

//menampilkan data bulan
function combo_bulan_get(){
$ip = $_SERVER['REMOTE_ADDR'];
if($ip=="127.0.0.1"){
$combo_bulan = $this->m_laporan->combo_bulan();
if($combo_bulan){
$this->response($combo_bulan, 200);
}else{
$this->response(array('error'=> 'Could\'t find any users!'), 400);
}
}else{
echo "Page Not Found";
}
}
}

Untuk modelnya:

<?php
class m_laporan extends CI_Model{

//menampilkan data bulan
function combo_bulan(){
$query = $this->db->query('SELECT KD_BULAN AS "kd_bulan", NM_BULAN AS "nm_bulan" 
FROM MD_BULAN ORDER BY CAST(KD_BULAN AS INTEGER) ASC');
return $query->result();
}
}

Saya diatas menggunakan database oracle. Mungkin Jika masih kurang jelas bisa mempelajari link-link dibawah ini :


Terimakasih sudah mampir, Karena keterbatasan waktu mungkin ini yang dapat saya sampaikan. 



No comments:

Post a Comment