REST, singkatan bahasa Inggris dari representational state transfer atau transfer
keadaan representasi, adalah suatu gaya arsitektur perangkat lunak untuk untuk
pendistibusian sistem hipermedia seperti WWW. Istilah ini diperkenalkan pertama kali
pada tahun 2000 pada disertasi doktoral Roy Fielding, salah seorang penulis utama
spesifikasi HTTP. Istilah ini selanjutnya dipergunakan secara luas pada komunitas jaringan.
REST secara spesifik merujuk pada suatu koleksi prinsip-prinsip arsitektur jaringan yang
menggariskan pendefinisian dan pengalamatan sumber daya. Istilah ini sering digunakan
dengan longgar untuk mendeskripsikan semua antarmuka sederhana yang menyampaikan
data dalam domain spesifik melalui HTTP tanpa tambahan lapisan pesan seperti SOAP atau
pelacakan sesi menggunakan cookie HTTP. Dua pengertian ini dapat menimbulkan konflik
dan juga tumpang tindih. Dimungkinkan untuk merancang suatu sistem perangkat lunak
besar sesuai dengan gaya arsitektur REST Fielding tanpa menggunakan HTTP dan tanpa
berinteraksi dengan WWW. Juga dimungkinkan untuk merancang antarmuka XML+HTTP
sederhana yang tidak mengikuti prinsip-prinsip REST, tapi sebaliknya mengikuti model dari
RPC (remote procedure call). Perbedaan penggunaan istilah REST ini cukup menyebabkan
permasalahan dalam diskusi-diskusi teknis. Sistem yang mengikuti prinsip REST Fielding
sering disebut sebagai "RESTful".
REST menekankan beberapa constraints yang dapat digunakan untuk membuat Web Services.
Web services sendiri dapat dikatakan adalah salah satu jenis dari implementasi API dari untuk
menghubungkan beberapa sistem yang terpisah oleh suatu jaringan.
REST ini memiliki standarisasi dalam pemakaian yaitu mengenai URL dan HTTP verbs.
Dengan menggunakan URL yang sama kita dapat melakukan 5 operasional berdasarkan
HTTP verbs. Secara teknis HTTP verbs ini adalah $_SERVER[‘REQUEST_METHOD’].
RESTful API adalah API yang dibangun dengan mengacu pada konsep dan constraints dari
REST. Prinsip kerja dari RESTful API ini adalah client akan menganggap server sebagai
object yang dapat dibuat, diupdate, dihapus dan juga dibaca. Jadi pada pelaksanaannya
akan ada create dengan request POST, update dengan request PUT atau PATCH, hapus
dengan request DELETE, dan baca dengan request GET.
2. PRAKTIKUM MEMBUAT RESTFUL API MAHASISWA
a. Pemetaan REST API
Route Metode Jenis Deskripsi
api/mahasiswa/ GET JSON Meminta semua data mahasiswa
api/mahasiswa/{npm} GET JSON Meminta data satu mahasiswa
api/mahasiswa/ POST JSON Menambah record data mahasiswa
baru ke database
api/mahasiswa/ PUT JSON Mengupdate recode data mahasiswa
api/mahasiswa/ DELETE JSON Menghapus data mahasiswa tertentu
SQL :
<?php
$host="localhost";
$user="root";
$pass="";
$database="dbakademik";
$koneksi= new mysqli($host,$user,$pass,$database);
if(mysqli_connect_errno()){
trigger_error("Koneksi ke database gagal : ".
mysqli_connect_error(), E_USER_ERROR);
}
?>
<html>
<head>
<title>MEMBUAT RESTFUL API DENGA PHP & MYSQL</title>
<body>
<h2 align="center">MEMBUAT RESTFUL API DENGA PHP & MYSQL</h2>
</body>
</html>
$response=array();
$result=mysqli_query($koneksi, $query);
while($row=mysqli_fetch_assoc($result)) {
$response[]=$row;
}
header('Content-Type: application/json');
echo json_encode($response);
}
function insert_mahasiswa(){
global $koneksi;
parse_str(file_get_contents("php://input"),$data);
$npm=mysqli_real_escape_string($koneksi,$data["npm"]);
$nama_mahasiswa=mysqli_real_escape_string($koneksi,$data["nama_mahas
iswa"]);
$tempat_lahir=mysqli_real_escape_string($koneksi,$data["tempat_lahir
"]);
$tanggal_lahir=mysqli_real_escape_string($koneksi,$data["tanggal_lah
ir"]);
$jurusan=mysqli_real_escape_string($koneksi,$data["jurusan"]);
if($insert){
$response=array(
'status' => 1,
'status_message' =>'Mahasiswa berhasil ditambah.');
}else{
$response=array(
'status' => 0,
'status_message' =>'Mahasiswa gagal ditambah.');
header('Content-Type: application/json');
echo json_encode($response);
$nama_mahasiswa=mysqli_real_escape_string($koneksi,$data["nama_mahas
iswa"]);
$tempat_lahir=mysqli_real_escape_string($koneksi,$data["tempat_lahir
"]);
$tanggal_lahir=mysqli_real_escape_string($koneksi,$data["tanggal_lah
ir"]);
$jurusan=mysqli_real_escape_string($koneksi,$data["jurusan"]);
if($update){
$response=array(
'status' => 1,
'status_message' =>'Mahasiswa berhasil diupdate.');
}else{
$response=array(
'status' => 0,
'status_message' =>'Mahasiswa gagal diupdate.');
}
header('Content-Type: application/json');
echo json_encode($response);
if($delete){
$response=array(
'status' => 1,
'status_message' =>'Mahasiswa berhasil dihapus.');
}else{
$response=array(
'status' => 0,
'status_message' =>'Mahasiswa gagal dihapus.');
header('Content-Type: application/json');
echo json_encode($response);
get_mahasiswa(mysqli_real_escape_string($koneksi,$_GET['npm']));
}
else {
get_mahasiswa();
}
break;
case 'POST':
insert_mahasiswa();
break;
case 'PUT':
update_mahasiswa();
break;
case 'DELETE':
delete_mahasiswa();
break;
default:
// jika request yang diminta tidak terdaftar
header("HTTP/1.0 405 Method Not Allowed");
break;
?>
- Masukan keyword postman pada kolom pencarian > cari > kemudian pilih
Tabbed Postman – REST CLIENT > lalu instal/pasangkan
-
- Apabila sudah terpasang klik icon tabbed psotman pada toolbar diatas sehingga
tampilan halaman browser manjadi seperti dibawah ini
Untuk mengecek apakah berhasil tersimpan ke database gunakan cek dengan get
mahasiswa
e. MEMANGGIL REST API UPDATE DATA MAHASISWA
Memanggil REST API untuk memperbaharui data mahasiswa
api/mahasiswa/ PUT JSON Mengupdate recod data mahasiswa