Membangun Rest API Server Dengan Codeigniter 3
# Persiapan File
Download CodeIgniter 3 : https://codeigniter.com/downloadLibraries 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.$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:
$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 :
$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/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 :
- Menampilkan data produk
- Penyimpanan data produk
- Ubah data produk
- 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 :
<?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 :
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.
Baca juga :
- 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??
BalasHapusproduk_model.php nya gak ada
BalasHapusbloger gobok otak udang
BalasHapusdi uncomment aja baris :
BalasHapus$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
BalasHapus