Membangun Rest API Server Dengan Codeigniter 3
Membangun Rest API Server Codeigniter 3, Web Service PHP
# 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
5 komentar
$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