Membangun Rest API Server Dengan Codeigniter 3
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/applicationdan
replace all file.
pastikan Codeigniter 3 sudah bisa berjalan di komputer anda seperti berikut :
# Konfigurasi CI Dasar
Buka file
application/config/config.phpkemudian edit
base_urldengan alamat url
http://localhost/rest-server/dan hapus
index.phppada index_page.
$config['base_url'] = 'http://localhost/rest-server'; //baris 26
$config['index_page'] = ''; //baris 38
Buka file
application/config/autoload.phpkemudian edit bagian
librariesdan
helpermenjadi seperti berikut:
$autoload['libraries'] = array('database'); //baris 61
$autoload['helper'] = array('url'); //baris 92
# Konfigurasi Database
$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 :
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/exampleanda untuk memastikan project yang kita buat sudah terintergrasi dengan library Rest Server. sehingga tampilan nya menjadi seperti berikut :
# Coding
- Menampilkan data produk
- Penyimpanan data produk
- Ubah data produk
- Hapus data produk
1. Menampilkan data produk
Tambahkan coding pada Controller
Produk.phpseperti berikut :
<?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/produkmaka 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 :
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
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
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.
- 30+ Latihan Soal dan Jawaban PAS Fisika Kelas XI K13 Terbaru
- 30+ Latihan Soal dan Jawaban PAS Kimia Kelas XI K13 Terbaru
- 30+ Latihan Soal dan Jawaban PAS Matematika Kelas XI K13 Terbaru
- 30+ Latihan Soal dan Jawaban PAS Matematika Peminatan Kelas XI K13 Terbaru
- 40 Latihan Soal dan Jawaban Bahasa Indonesia PAS Ganjil Kelas XI K13 Terbaru
- 40 Latihan Soal dan Jawaban PAI PAS Ganjil Kelas XI K13 Terbaru
- 40 Soal dan Jawaban Bahasa Inggris PAS Ganjil Kelas XI K13 Terbaru
Error Produk_model.php nya kosong??
produk_model.php nya gak ada
bloger gobok otak udang
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
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