Assalamu'alaikum WR WB.
Hello Gays, Pada kesempatan ini, disela-sela kesibukan mencari nafkah. saya akan sedikit share, "Bagaimana membuat webservice dengan PHP (Codeigniter)".
Sedikit saran untuk anda para pembaca, untuk menambahkan fitur keamanan pada webservice Server, ada beberapa yang perlu kita tambahkan
baiklah kita mulai saja. dibawah ini adalah langkah-langkah untuk membuat webservice server :
Hello Gays, Pada kesempatan ini, disela-sela kesibukan mencari nafkah. saya akan sedikit share, "Bagaimana membuat webservice dengan PHP (Codeigniter)".
Sedikit saran untuk anda para pembaca, untuk menambahkan fitur keamanan pada webservice Server, ada beberapa yang perlu kita tambahkan
- Kita perlu membatasi pengakses dengan menggunakan key atau token unik.
- Kita juga perlu membatasi IP atau host client pengakses untuk meminimalisir penyalahgunaan data yang kita sediakan pada API.
baiklah kita mulai saja. dibawah ini adalah langkah-langkah untuk membuat webservice server :
- Siapkan project Codeigniter didalam folder htdocs atau www
- Kemudian buat file apache konfigurasi dengan nama .htaccess
- Tulis kode berikut untuk mempercantik url, jadi ketika akan mengakses webservice juga url nya mudah untuk diingat.
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] - Kemudian buka file autoload.php yang ada pada folder application/config. tambahkan helper url untuk mengaktifkan penggunaan function base_url.
- Kemudian buka file config.php yang ada pada folder application/config. Hapus index_page pada pengaturan.
$config['index_page'] = '';
- Kemudian ubah juga pada base_url sesuai dengan hostname yang anda gunakan.
contoh :
$config['base_url'] = 'http://send_api.host.com/';
- Kemudian silahkan anda test dengan cara. buka browser kalian kemudian masukkan url base_url kalian.
- Jika sudah berhasil kita lanjutkan ke tahap selanjutnya.
- Sekarang kita buat file misal dengan nama Webservice.php didalam folder application/controllers.
- Kemudian kita tambahkan class dan pengaturan lain didalam file Webservice.php
//Agar file controller tidak dapat diakses langsung dari folder controllers
defined('BASEPATH') OR exit('No direct script access allowed');
//nama class harus sama dengan nama file serta adanya penambahan extend yang dimaksudkan bahwa class webservice adalah turunan dari class ci_controller
class Webservice extends CI_Controller{ //put your code here
}
- Sekarang kita coba untuk membuat function(method) didalam class Webservice
public function mahasiswa() {
//membatasi pengguna berdasarkan host/ip
header('Access-Control-Allow-Origin:*');
//penggunaan request method hanya GET
header('Access-Control-Allow-Methods: GET');
//validasi token contoh token:1234
if ($_SERVER['HTTP_TOKEN'] == '1234') {
echo json_encode([
"status" => 200, //code sukses
"text" => $this->input->get("id", true),
"server" => $_SERVER
]);
} else {
echo json_encode([
"status" => 400, //kode gagal
"text" => "Token tidak dikenali",
"server" => $_SERVER
]);
}
}
- untuk mengaksesnya kita butuh parameter GET (id=?) HEADER (token=1234) dan url:http://send_api.host.com/webservice/mahasiswa
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "http://send_api.host.com/webservice/mahasiswa?id=1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"token: 1234"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
} Selesai.
semoga bermanfaat, dan jangan lupa ilmu yang baik adalah sedekahkan pada orang-orang yang membutuhkan.
Main
BalasHapus