Teknologi
• 5 min baca • 7 x dilihat

Membangun Rest API Server Dengan Codeigniter 3

m

Ditulis oleh

mrjj


# Persiapan File 

Download CodeIgniter 3 : https://codeigniter.com/download


Libraries Restserver : Download https://github.com/agamyusliman/ci-restserver



Buat folder baru di htdocs dengan nama

rest-server

, kemudian extract file CI kedalam folder

rest-server

, selanjutnya extract file ci-restserver kedalam folder

rest-server/application

dan

replace all file

.



pastikan Codeigniter 3 sudah bisa berjalan di komputer anda seperti berikut :



# Konfigurasi CI Dasar 

Buka file

application/config/config.php

kemudian edit

base_url

dengan alamat url

http://localhost/rest-server/

  dan hapus

index.php

pada index_page.



Code Snippet
$config['base_url'] = 'http://localhost/rest-server'; //baris 26
$config['index_page'] = ''; //baris 38

Buka file

application/config/autoload.php

kemudian edit bagian

libraries

dan

helper

menjadi seperti berikut:



Code Snippet
$autoload['libraries'] = array('database'); //baris 61
$autoload['helper'] = array('url'); //baris 92

# Konfigurasi Database

Buka file application/config/database.php kemudian edit sesuai dengan database yang sudah dibuat sebelumnya, yaitu nama database : dbrest, userrname : root dan password : kosong atau menjadi seperti berikut :

Code Snippet
$db['default'] = array(
 'dsn' => '',
 'hostname' => 'localhost',
 'username' => 'root',
 'password' => '',
 'database' => 'dbrest',
 '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
);

Jika anda belum memiliki database silahkan eksekusi perintah SQL berikut :


Code Snippet
CREATE DATABASE `dbrest`;
USE `dbrest`;
DROP TABLE IF EXISTS `produk`;
CREATE TABLE `produk` (
  `id` INT(6) UNSIGNED NOT NULL AUTO_INCREMENT,
  `nama_produk` VARCHAR(30) DEFAULT NULL,
  `tipe_produk` VARCHAR(30) DEFAULT NULL,
  `harga` INT(50) DEFAULT NULL,
  `stok` INT(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=23 DEFAULT CHARSET=latin1;

Buka kembali url project pada link berikut :

http://localhost/rest-server/index.php/example

anda untuk memastikan project yang kita buat sudah terintergrasi dengan library Rest Server. sehingga tampilan nya menjadi seperti berikut :



# Coding

saat nya kita akan membuat coding untuk membuat web service api, adapun api yang akan kita buat diantaranya adalah sebagai berikut :
  1. Menampilkan data produk
  2. Penyimpanan data produk
  3. Ubah data produk
  4. Hapus data produk
untuk membuat perintah diatas kita akan menambahkan sebuah file baru dengan nama Produk_model.php di application/model/Produk_model.php dan sebuah Controller dengan nama Produk.php di application/controller/Produk.php

1. Menampilkan data produk


Tambahkan coding pada Controller 

Produk.php

 seperti berikut :


Code Snippet
<?php
use Restserver\Libraries\REST_Controller;

defined('BASEPATH') or exit('No direct script access allowed');
require APPPATH . '/libraries/REST_Controller.php';
class Produk extends REST_Controller
{
    public function __construct()
    {
        parent::__construct();
        //inisialisasi model Produk_model.php dengan nama produk
        $this->load->model('Produk_model', 'produk');
    }
    public function index_get()
    {
       $id = $this->get('id');
        if ($id == '') {
            $produk = $this->db->get('produk')->result();
        } else {
            $this->db->where('id', $id);
            $produk = $this->db->get('produk')->result();
        }
        $this->response($produk, REST_Controller::HTTP_OK);
    }
}

Untuk melihat hasil silahkan buka browser anda dengan url yang mengarah ke Controller produk.php dengan url

http://localhost/rest-server/index.php/produk

maka akan muncul hasil seperti pada gambar berikut :



Jika anda menggunakan postman hasilnya akan seperti berikut :




2. Penyimpanan data Produk

Tambahkan pada Controller coding dibawah fungsi index_get seperti berikut :


Code Snippet
function index_post()
    {
        $data = array(
            'nama_produk'        => $this->post('nama_produk'),
            'tipe_produk'        => $this->post('tipe_produk'),
            'stok'               => $this->post('stok'),
            'harga'              => $this->post('harga'),
        );
        $insert = $this->db->insert('produk', $data);
        if ($insert) {
            $this->response($data, REST_Controller::HTTP_OK);
        } else {
            $this->response(array('status' => 'fail', 502));
        }
    }

Untuk mengujinya coding penyimpanan diatas kita dapat menggunakan Postman, pilih metode POST, masukan http://localhost/rest-server/index.php/produk pada address bar, klik “Body” pada menu dibawah address bar, pilih x-www-form-urlencoded, masukan key dan value yang diperlukan lalu klik “Send” (lihat gambar).




2. Ubah data Produk

Code Snippet
function index_put() {
        $id = $this->put('id');
        $data = array(
            'nama_produk'        => $this->put('nama_produk'),
            'tipe_produk'        => $this->put('tipe_produk'),
            'stok'               => $this->put('stok'),
            'harga'              => $this->put('harga'),
        );
        $this->db->where('id', $id);
        $update = $this->db->update('produk', $data);
        if ($update) {
            $this->response($data, 200);
        } else {
            $this->response(array('status' => 'fail', 502));
        }
    }

Untuk mengujinya coding pengubahan data diatas kita dapat menggunakan Postman, pilih metode PUT, masukan http://localhost/rest-server/index.php/produk pada address bar, klik “Body” pada menu dibawah address bar, pilih x-www-form-urlencoded, masukan key dan value yang diperlukan lalu klik “Send” (lihat gambar).




3. Hapus data Produk

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

Untuk mengujinya coding hapus data diatas kita dapat menggunakan Postman, pilih metode DELETE, masukan http://localhost/rest-server/index.php/produk pada address bar, klik “Body” pada menu dibawah address bar, pilih x-www-form-urlencoded, masukan key dan value yang diperlukan lalu klik “Send” (lihat gambar).




Sekian, JIka ada pertanyaan silahkan isi komentar dibawah.



Bagikan artikel ini:
← Artikel Sebelumnya
Artikel Selanjutnya →

5 Komentar

  1. di uncomment aja baris :
    $this->load->model('Produk_model', 'produk');
    jadi

    //$this->load->model('Produk_model', 'produk');

    kalo diliat dari codingan ga ada method/fungsi yng dipakai dri model tsb

  2. Tolong kalau memang niat berbagi ilmu jangan nanggu-nanggu ya kak. Produk_model.php tidak ada. Semoga kita yang sering berbagi ilmu dengan baik, bisa membuat Indonesia Jaya dan Maju. Jangan kwatir Anda akan menjadi kecil dengan berbagi ilmu, tapi sebaliknya akan semakin Besar dengan banyak ilmu yang Anda dapatkan lagi. Yakinlah… Mari semangat untuk selalu berbagi ilmu

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *