Creating a Restful Web Service in PHP (Method GET)

Kali ini kita akan membuat sebuah webservis dengan bahasa pemograman PHP tanpa Framework, biasanya orang bilang PHP Native. Perlu diketahui perbedaan website dan webservis adalah jika website diakses oleh user/orang via web browser dan respon berupa HTML, maka webservice yaitu dapat diakses oleh program, respon berupa XML atau JSON, dan digunakan untuk berkomunikasi antar system dan platform yang berbeda.

Nah… Webservis yang akan dibuat kali ini yaitu webservis yang dasar-dasarnya saja dengan metode GET. Bagaimana caranya?.. yuk ikuti langkah berikut:

1. Buatlah table contacts sebagai berikut:

CREATE TABLE IF NOT EXISTS `contacts` (
  `id` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  `telpnumber_person` varchar(15) NOT NULL,
  `email` varchar(50) NOT NULL,
  `address_person` varchar(50) NOT NULL,
  `motor` int(11) NOT NULL,
  `mobil` int(11) NOT NULL,
  `rumah` int(11) NOT NULL,
  `fact` varchar(200) NOT NULL,
  `message` varchar(50) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL
  ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
INSERT INTO `contacts` (`id`, `name`, `telpnumber_person`, `email`, `address_person`, `motor`, `mobil`, `rumah`, `fact`, `message`, `created_at`, `updated_at`) VALUES
  (6, 'Gon Freecss', '08777', 'gonfreecss@gmail.com', 'Whale Island', 3, 2, 1, '', '', '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
  (7, 'Killua Zoldyck', '813', 'killuazoldyck@gmail.com', 'Gunung Kukuru', 4, 4, 1, '', '', '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
  (8, 'Leorio Paradinight', '812', 'leorioparadinight@gmail.com', 'Yasmin-Bogor', 1, 2, 2, '', '', '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
  (9, 'Kill Tutut Sawah', '8777', 'killtututsawah@gmail.com', 'Bubulak', 2, 3, 3, '', '', '0000-00-00 00:00:00', '0000-00-00 00:00:00'),
  (10, 'Kentut Ayam', '08777', 'kentutayam@gmail.com', 'Bogor', 3, 3, 4, '', '', '0000-00-00 00:00:00', '0000-00-00 00:00:00');

2. Buatlah file koneksi.php

Script sebagai berikut:

<?php
 $mysqli = new mysqli("localhost", "root", "", "");
  if ($mysqli->connect_errno)
   {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
   }
?>

3. Buatlah file index.php

Script sebagai berikut:

<?php

//koneksi ke database
  include "koneksi.php";

//proses client request(VIA URL)
  header("Content-Type:application/json");

if(!empty($_GET['name'])){
  //Ambil data name dari URL
  $name=$_GET['name'];

//cek ke database
  $res = $mysqli->query("SELECT * FROM contacts WHERE name = '".$name."'");

//cek jika data di temukan di database
  if($res->num_rows>0){

$row= $res->fetch_array();

//tampilkan dalam bentuk array
  $data=array('name contact'=>$row['name'],
  'telp contact'=>$row['telpnumber_person'],
  'email contact'=>$row['email']
  );

//panggil fungsi respon
  deliver_response(200,"Contact Found", $data);
  }

else {
  //panggil fungsi respon
  deliver_response(200,"Contact Not Found", NULL);
  }

}

else{
  //panggil fungsi respon
  deliver_response(400,"Invalid Request", NULL);
  }

//fungsi respon
  function deliver_response($status, $status_message, $data){
  header("HTTP/1.1 $status $status_message");

//array
  $response['status']=$status;
  $response['status_message']=$status_message;
  $response['data']=$data;

$json_response=json_encode($response);
  echo $json_response;
  }

?>

4. Hit URL pada RESTClient
restclient

5. Result JSON

{
  "status": 200,
  "status_message": "Contact Found",
  "data":
  {
   "name contact": "Gon Freecss",
   "telp contact": "08777",
   "email contact": "gonfreecss@gmail.com"
   }
}

6. Done 😀

Terimakasih
Sumber:https://www.youtube.com/watch?v=5eWC-lf1FxM
Regards,

Okto Alhamda Putra