HOTLINE

(0275) 2974 127

CHAT WA 24/7
0859-60000-390 (Sales)
0852-8969-9009 (Support)
Blog

Cara Mudah Membuat Rest API Server Dengan Codeigniter

Representational State Transfer atau REST merupakan suatu gaya arsitektur perangkat lunak untuk untuk pendistribusian sistem hipermedia seperti www.Istilah REST diperkenalkan pertama kali pada tahun 2000 pada disertasi doktoral Roy Fielding.Pada arsitektur REST,REST server menyediakan resources (sumber daya/data) dan REST client mengakses dan menampilkan resource tersebut untuk penggunaan selanjutnya.

CodeIgniter merupakan aplikasi sumber terbuka berupa framework PHP dengan model MVC (Model,View,Controller) untuk membangun website dinamis dengan menggunakan PHP.Pada penerapan REST pada Codeigniter diperlukan beberapa library tambahan yang tidak disediakan secara default pada Codeigniter,salah satu library yang bisa digunakan yakni library dari Chris Kacerguis.

Berikut ini penjelasan langkah-langkah membuat REST API server yang sederhana tentang CRUD kontak nomor telepon.REST API server,,selanjutnya diuji menggunakan Postman yang merupakan aplikasi ekstensi atau tambahan dari Google Chrome.

Langkah Awal Persiapan

Pembuatan Rest API server memerlukan :

  1. Webserver : Xampp,Wampp atau lainnya.
  2. Codeigniter dan library REST server yang diperlukan dapat diunduh di https://github.com/chriskacerguis/codeigniter-restserver untuk versi terbaru,versi yang digunakan adalah https://github.com/ardisaurus/ci-restserver.

Setelah semua yang diperlukan siap,lakukan extract Codeigniter dan library REST server yang didownload dan pindah ke htdocs pada direktori xampp lalu rename folder Codeigniter dan library REST server menjadi rest_ci.

Masukan http://127.0.0.1/rest_ci/index.php/rest_server pada address bar browser kalian,jika muncul gambar dibawah ini maka instalasi berhasil.

Konfigurasi database

Buat database baru nama “kontak”  :

CREATE DATABASE kontak;

Buat tabel baru dengan nama “telpon” dengan field id (int 11 AUTO_INCREMENT),nama (varchar 30),nomor (varchar 11):

USE kontak;
CREATE TABLE IF NOT EXISTS `telpon` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nama` varchar(50) NOT NULL,
  `nomor` varchar(13) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

Masukan beberapa data contoh :

 

USE kontak;
INSERT INTO `telpon` (`id`, `nama`, `nomor`) VALUES
(1, 'Gema', '08576666772'),
(2, 'Mars', '08576666773'),
(7, 'Pegasus', '08576666774');

Buka database.php pada rest_ci/application/config dirubah menjadi :
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'    => '',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => '',
    'database' => 'kontak',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

GET

Metode GET memberikan akses baca pada sumber daya yang disediakan oleh REST API,Contoh :  untuk membaca data dari tabel telpon pada database kontak.Untuk membaca data dari database dapat dilakukan dengan active record yang sudah disediakan Codeigniter.Sebelum membaca data dari database,fungsi GET yang akan dibuat terlebih dahulu memeriksa apakah terdapat property id pada address bar sehingga data yang ditampilkan dapat di seleksi berdasarkan id atau ditampilkan semua.

Buat file php baru di di rest_ci/application/controller dengan nama kontak.php.

<?php

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

require APPPATH . '/libraries/REST_Controller.php';
use Restserver\Libraries\REST_Controller;

class Kontak extends REST_Controller {

    function __construct($config = 'rest') {
        parent::__construct($config);
        $this->load->database();
    }

    //Menampilkan data kontak
    function index_get() {
        $id = $this->get('id');
        if ($id == '') {
            $kontak = $this->db->get('telpon')->result();
        } else {
            $this->db->where('id', $id);
            $kontak = $this->db->get('telpon')->result();
        }
        $this->response($kontak, 200);
    }


    //Masukan function selanjutnya 
}
?>

Guna menguji kode yang sudah dibuat,buka Postman>pilih metode GET>masukan http://127.0.0.1/rest_ci/index.php/kontak pada address bar lalu klik “Send”.

Ubah address pada address bar menjadi http://127.0.0.1/rest_ci/index.php/kontak?id=7 lalu klik “Send”.

POST

POST digunakan untuk mengirimkan data baru dari client ke server REST API.Contohnya digunakan untuk menambahkan kontak baru yang terdiri dari id,nama dan nomor.

    //Mengirim atau menambah data kontak baru
    function index_post() {
        $data = array(
                    'id'           => $this->post('id'),
                    'nama'          => $this->post('nama'),
                    'nomor'    => $this->post('nomor'));
        $insert = $this->db->insert('telepon', $data);
        if ($insert) {
            $this->response($data, 200);
        } else {
            $this->response(array('status' => 'fail', 502));
        }
    }
    
    //Masukan function selanjutnya 

Guna mengujinya buka Postman,lalu pilih metode POST,masukan http://127.0.0.1/rest_ci/index.php/kontak pada address bar,klik “Body” pada menu dibawah address bar,pilih x-www-form-urlencodedmasukan key dan value yang diperlukan (id, nama, nomor), lalu klik “Send”.

Lakukan metode GET untuk melihat data terbaru.

PUT

Metode PUT digunakan untuk memperbarui data yang telah ada di server REST API.Contohnya digunakan untuk memperbarui data dengan id 88 pada tabel telpon database kontak.

    //Memperbaharui data kontak yang sudah ada
    function index_put() {
        $id = $this->put('id');
        $data = array(
                    'id'       => $this->put('id'),
                    'nama'          => $this->put('nama'),
                    'nomor'    => $this->put('nomor'));
        $this->db->where('id', $id);
        $update = $this->db->update('telpon', $data);
        if ($update) {
            $this->response($data, 200);
        } else {
            $this->response(array('status' => 'fail', 502));
        }
    }
    
    //Masukan function selanjutnya 

Guna mengujinya buka Postman,pilih metode PUT,masukan http://127.0.0.1/rest_ci/index.php/kontak pada address bar,lalu klik “Body” pada menu dibawah address bar,pilih x-www-form-urlencoded,lalu masukan key id dan value id yang akan diubah (88) diikuti key dan value selanjutnya,klik “Send”.

Lakukan metode GET untuk melihat data terbaru.

DELETE

DELETE digunakan untuk menghapus data yang sudah ada di server REST API.Contohnya digunakan menghapus data dengan id 88 pada tabel telpon database kontak.

    //Menghapus salah satu data kontak
    function index_delete() {
        $id = $this->delete('id');
        $this->db->where('id', $id);
        $delete = $this->db->delete('telpon');
        if ($delete) {
            $this->response(array('status' => 'success'), 201);
        } else {
            $this->response(array('status' => 'fail', 502));
        }
    }

Untuk mengujinya buka Postman,pilih metode DELETE,masukan http://127.0.0.1/rest_ci/index.php/kontak pada address bar,lalu klik “Body” pada menu dibawah address bar,pilih x-www-form-urlencoded,masukan key id dan value id yang akan dihapus (88),klik “Send”.

Lakukan metode GET untuk melihat data terbaru.

Keseluruhan isi dari kontak.php pada rest_ci pada rest_ci/application/controller  seperti dibawah ini.

<?php

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

require APPPATH . '/libraries/REST_Controller.php';
use Restserver\Libraries\REST_Controller;

class Kontak extends REST_Controller {

    function __construct($config = 'rest') {
        parent::__construct($config);
        $this->load->database();
    }

    function index_get() {
        $id = $this->get('id');
        if ($id == '') {
            $kontak = $this->db->get('telpon')->result();
        } else {
            $this->db->where('id', $id);
            $kontak = $this->db->get('telpon')->result();
        }
        $this->response($kontak, 200);
    }

    function index_post() {
        $data = array(
                    'id'           => $this->post('id'),
                    'nama'          => $this->post('nama'),
                    'nomor'    => $this->post('nomor'));
        $insert = $this->db->insert('telpon', $data);
        if ($insert) {
            $this->response($data, 200);
        } else {
            $this->response(array('status' => 'fail', 502));
        }
    }

    function index_put() {
        $id = $this->put('id');
        $data = array(
                    'id'       => $this->put('id'),
                    'nama'          => $this->put('nama'),
                    'nomor'    => $this->put('nomor'));
        $this->db->where('id', $id);
        $update = $this->db->update('telpon', $data);
        if ($update) {
            $this->response($data, 200);
        } else {
            $this->response(array('status' => 'fail', 502));
        }
    }

    function index_delete() {
        $id = $this->delete('id');
        $this->db->where('id', $id);
        $delete = $this->db->delete('telpon');
        if ($delete) {
            $this->response(array('status' => 'success'), 201);
        } else {
            $this->response(array('status' => 'fail', 502));
        }
    }

}
?>

Sumber daya dari REST API tersebut dapat dimanfaatkan dengan aplikasi web,desktop atau mobile yang menjadi client dari REST API tersebut.

Jadilah yang pertama untuk memberi nilai
feni

Recent Posts

Amankan Website dari XSS Vulnerability dengan CSP

Ketika kamu ingin membuat website, ada beberapa hal yang perlu kamu perhatikan, khususnya tingkat keamanan…

1 day ago

Rekomendasi Website dan Aplikasi Kompres File PDF

Kompresi online file PDF ukuran 200 KB dan 500 KB atau rahasia kompresi PDF di…

1 day ago

Disclaimer: Pengertian, Jenis, dan Cara Membuatnya

Kamu pasti tahu disclaimer di blog, kan? Pasalnya, disclaimer merupakan salah satu tulisan yang sering…

2 days ago

Cara Mudah Menghapus Cache di Google Chrome

Pernahkah Anda mendengar kata cache? Jadi, apakah ada perbedaan antara cache hosting dan cache browser…

2 days ago

Yuk Cari Tahu! Cara Memasang Widget di WordPress

Apakah kamu pengguna WordPress? Apakah kamu ingin menambahkan kalender atau kode HTML ke website? Jika…

3 days ago

Apa Saja yang Harus Dipejalari Untuk Menjadi Seorang IT Support?

Saat ini, karir apa pun yang berhubungan dengan IT menjadi semakin populer. Tak heran jika…

3 days ago