Cara Membuat Restful API Menggunakan Codeigniter 3 Dengan Sederhana
Kali ini kita akan belajar bagaimana membuat restful api menggunakan Codeigniter. Namun kalian tidak usah kuatir, karena yang akan kita lakukan adalah cukup dengan menambah method untuk request request yang kita butuhkan seperti GET, POST, PUT dan DELETE
Bagaimana caranya? Yukkkk, kita selidiki
Langkah Langkah
- Pertama, download/clone sourcecode berikut dari Github. Letakkan di dalam web server kalian
https://github.com/yasyaindra/ci3-restful-api
Saya sendiri menggunakan Laragon, caranya adalah dengan buka Laragon, klik kanan Quick App, pilih Blank. Lalu kalian masuk ke dalam folder tersebut dan letakkan sourcecode dari github tersebut
- Kedua, konfigurasikan database pada file database.php yang berada ada folder config
<?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' => 'warung',
'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
);
- Ketiga, buat database dan table menggunakan sql query.
CREATE DATABASE warung;
USE warung;
CREATE TABLE IF NOT EXISTS `barang` (
`kode` int(11) NOT NULL AUTO_INCREMENT,
`nama_barang` varchar(50) NOT NULL,
`jenis` varchar(13) NOT NULL,
`harga` int(11) NOT NULL,
`stok` int(11) NOT NULL,
PRIMARY KEY (`kode`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8;
INSERT INTO barang (kode, nama_barang, jenis, harga, stok)
VALUES
(1, 'Buku Komputer', 'Alat tulis', 15000, 1000),
(2, 'Pensil', 'Alat tulis', 5000, 5000),
(3, 'Tas Gendong', 'Tas', 250000, 30),
(4, 'Seragam', 'Pakaian', 200000, 500),
(5, 'Sepatu', 'Alas kaki', 100000, 100);
- Keempat, buat file controller pada folder controller berisi class dan method seperti ini
class Barang extends REST_Controller {
function __construct($config = 'rest') {
parent::__construct($config);
$this->load->database();
}
//Menampilkan data barang
function index_get() {
$kode = $this->get('kode');
if ($kode == '') {
$kontak = $this->db->get('barang')->result();
} else {
$this->db->where('kode', $kode);
$kontak = $this->db->get('barang')->result();
}
$this->response($kontak, 200);
}
// mengirimkan data barang
function index_post() {
$data = array(
'kode' => $this->post('kode'),
'nama_barang' => $this->post('nama_barang'),
'jenis' => $this->post('jenis'),
'harga' => $this->post('harga'),
'stok' => $this->post('stok'));
$insert = $this->db->insert('barang', $data);
if ($insert) {
$this->response($data, 200);
} else {
$this->response(array('status' => 'fail', 502));
}
}
// mengubah isi data barang
function index_put() {
$kode = $this->put('kode');
$data = array(
'kode' => $this->put('kode'),
'nama_barang' => $this->put('nama_barang'),
'jenis' => $this->put('jenis'),
'harga' => $this->put('harga'),
'stok' => $this->put('stok'));
$this->db->where('kode', $kode);
$update = $this->db->update('barang', $data);
if ($update) {
$this->response($data, 200);
} else {
$this->response(array('status' => 'fail', 502));
}
}
// menghapus isi data
function index_delete() {
$kode = $this->delete('kode');
$this->db->where('kode', $kode);
$delete = $this->db->delete('barang');
if ($delete) {
$this->response(array('status' => 'success'), 201);
} else {
$this->response(array('status' => 'fail', 502));
}
}
}
- Lalu kita coba test menggunakan Postman
GET, untuk mendapatkan seluruh response dari isi database. Jika ingin hanya mendapatkan data dengan id spesifik, masukkan parameter ?kode=2
POST, untuk menambah data ke dalam database
PUT, untuk mengubah data yang diinginkan dengan id spesifik
DELETE, untuk menghapus data
Coba cek link tersebut untuk menguji apakah aplikasi yang saya buat berhasil atau tidak
Demo: https://warung.yasya.tech
Comments
Post a Comment