Membuat REST API sederhana dengan PHP

post8

Halo sahabat codenesia, disini saya akan berbagi materi tentang bagaimana membangun sebuah REST API. Sebelum kita membahas lebih lanjut mengenai apa itu API, kita akan mencari tau alasannya dulu kenapa kita harus memakai API, untuk apa sih?. Gini coba kita berhayal dulu yuk. Misal nih kita punya perusahaan apparel yang menjual pakaian secara online, dan perusahaan kita punya banyak mitra yang akan menjual produk kita secara online. Nah tentu saja mitra kita itu butuh database produk yang kita jual beserta database yang lain yang mungkin akan dibutuhkan oleh mitra perusahaan kita. Nah bagaimana caranya supaya mitra kita bisa mengakses database di server kita? Apakah kita memberitahukan tentang URL database kita beserta username dan passwordnya? TENTU SAJA TIDAK. Nah gimana caranya dong? Nah caranya dengan menggunakan REST API.

REST (Representational State Transfer) yaitu mekanisme untuk komunikasi dengan server melalui protokol HTTP yang mudah untuk digunakan daripada memakai mekanisme protokol lama sepeti CORBA, SOAP ataupun RPC. Aplikasi REST memakai metode HTTP seperti POST, PUT, GET dan DELETE untuk menambah, mengubah, mengambil ataupun menghapus resource yang ada pada server. Arsitektur REST, yang umumnya dijalankan via HTTP (Hypertext Transfer Protocol), melibatkan proses pembacaan laman web tertentu yang memuat sebuah file XML atau JSON. File inilah yang menguraikan dan memuat konten yang hendak disajikan. Setelah melalui sebuah proses definisi tertentu, konsumen akan bisa mengakses antarmuka aplikasi yang dimaksudkan. Layanan berbasis web yang menggunakan arsitektur REST semacam itu dinamakan RESTful APIs (Application Programming Interfaces) atau REST APIs.

Untuk membuat REST API yang menyediakan data public untuk digunakan oleh sistem lain, maka langkah-langkahnya sebagai berikut :

1. Membuat Database, membuat table dan menginputkan data ke tabel database

CREATE DATABASE dbrest;
CREATE TABLE produk (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
nama_produk VARCHAR(30) NOT NULL,
tipe_produk VARCHAR(30) NOT NULL,
harga INT(50),
stok INT(50)
)
insert into produk(nama_produk,tipe_produk,harga,stok) values 
('Jeas Ver', 'Celana', 235000,13),
('Vander', 'Celana', 125000,42),
('Super 25', 'Baju', 35000,16),
('Gegro', 'Tas', 347000,25),
('Uyta', 'Celana', 117000,34);

2. Setelah kita selesai membuat database dan telah memasukkan data ke database, selanjutnya kita akan membuat REST API di PHP

 

<?php
 
$method = $_SERVER['REQUEST_METHOD'];
$request = explode('/', trim($_SERVER['PATH_INFO'],'/'));
$input = json_decode(file_get_contents('php://input'),true);
 
$link = mysqli_connect('localhost', 'root', '', 'dbrest');
mysqli_set_charset($link,'utf8');
 
$data = preg_replace('/[^a-z0-9_]+/i','',array_shift($request));
$id = array_shift($request)+0;

if (strcmp($data, 'data') ==0) {
 switch ($method) {
 case 'GET':
 $sql = "select * from produk".($id?" WHERE id=$id":''); break;
 }
 $result = mysqli_query($link,$sql);
 
 if (!$result) {
 http_response_code(404);
 die(mysqli_error());
 }
 
 if ($method == 'GET') {
 $hasil=array();
 while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
 {
 $hasil[]=$row;
 } 
 $hasil1 = array('status' => true, 'message' => 'Data show succes', 'data' => $hasil);
 echo json_encode($hasil1);
 
 } elseif ($method == 'POST') {
 echo mysqli_insert_id($link);
 } else {
 echo mysqli_affected_rows($link);
 }
}else{
 $hasil1 = array('status' => false, 'message' => 'Access Denied');
 echo json_encode($hasil1);
}

mysqli_close($link);
?>

Nah Akhirnya kita telah selesai membuat SIMPLE REST API. Untuk mengakses API ini dari localhost, caranya cukup mudah. Akses lewat URL : Localhost/{nama_project}/api.php/data

http://localhost/rest/api.php/data
http://localhost/rest/api.php/data/2

 


Silahkan dukung developer indonesia dengan mendownload aplikasi buatan anak bangsa. Silahkan klik https://play.google.com/store/apps/details?id=com.codenesia.mathgames

Aplikasi codenesia

11 thoughts on “Membuat REST API sederhana dengan PHP

  1. Makasih Gan.
    Gimana jika kita mengunakan api key seperti rajaongkir (http://api.rajaongkir.com/starter/province). Sehingga setiap kali diakses harus ada keynya.
    seperti rajaongkir sbb:

    $curl = curl_init();
    curl_setopt_array($curl, array(
    CURLOPT_URL => “http://api.rajaongkir.com/starter/cost”,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => “”,
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => “POST”,
    CURLOPT_POSTFIELDS => “origin=$Asal&destination=$Tujuan&weight=$berat&courier=$jasa”,
    CURLOPT_HTTPHEADER => array(
    “content-type: application/x-www-form-urlencoded”,
    “key: $APIKeyRaja” // <—– DISINI KEYNYA
    ),
    ));
    Mehon pencerahan Gan.
    Terima kasih

  2. mau tanya kalau mau pake yang post bgmana ya? pengennya mau inputin ke database.. penjelasan tentang tabel yang diinput dan data yang diinput bgmana ya..? tolong bantu penjelasannya..

    1. Tidak harus gan. Tapi untuk alasan security dan lainnya, alangkah baiknya Pake framework. Tapi kalo agan sudah expert, kayaknya bisa bangun web service tanpa framework dengan security yang tangguh

Leave a Reply

Your email address will not be published. Required fields are marked *