Tutorial Cara Membuat REST-ful API Dengan PHP
Apa itu Rest-ful API? REST-ful API adalah antarmuka yang digunakan oleh dua sistem komputer untuk bertukar data secara aman melalui internet. Sebagian besar aplikasi bisnis perlu berkomunikasi dengan aplikasi internal dan pihak ketiga lainnya untuk melakukan berbagai tugas. Misalnya, untuk menghasilkan gaji bulanan, sistem akuntansi internal perlu berbagi data dengan sistem perbankan klien Anda untuk mengotomatiskan penagihan dan berkomunikasi dengan aplikasi pelacakan waktu internal. Begitupun aplikasi yang akan saya buat untuk tugas akhir mata kuliah pemrograman perangkat bergerak yang saya beri nama “Kitchen Journey”
Langkah-langkah untuk membuat REST-ful API dengan PHP adalah sebagai berikut :
- Membuat file terlebih dahulu
Disini saya sudah membuat folder “Kitchen Journey” di htdocs nya dan disini saya tinggal membuat 1 file yaitu resep.php selanjutnya saya isikan coding untuk aplikasi ini.
2. Mengisi Coding
Jadi disini saya menggunakan basis data sqlite. Sqlite merupakan basis data yang sifatnya embedded artinya lebih ke manipulasi database sqlite ini sudah ada pada bahasa pemrograman kita sendiri yaitu di php. Kemudian datanya akan di simpan dalam sebuah file.
<?php
$file_db = "kitchen_journey.db";
try {
$pdo = new PDO("sqlite:$file_db");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$sql_create = "CREATE TABLE IF NOT EXISTS `resep`(
`id` integer NOT NULL PRIMARY KEY AUTOINCREMENT,
`gambar` text NOT NULL,
`nama_masakan` text NOT NULL,
`bahan_masakan` text NOT NULL,
`cara_memasak` text NOT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP)";
$pdo->exec($sql_create);
} catch (PDOException $e) {
throw new PDOException($e->getMessage(), (int)$e->getCode());
}
header('Content-Type: application/json');
/**
* Method REST:
*
* - GET: untuk mendapatkan data dari server
* - POST: untuk menginputkan data baru
* - PUT: untuk mengupdate data yang sudah ada
* - DELETE: untuk menghapus data
*
*/
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
# untuk mengakses data dari server
$query = 'select * from resep order by created_at desc';
$stmt = $pdo->prepare($query);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($data);
} elseif ($_SERVER['REQUEST_METHOD'] === 'POST') {
# untuk menambahkan data baru dari server
$gambar = $_POST['gambar'];
$nama_masakan = $_POST['nama_masakan'];
$bahan_masakan = $_POST['bahan_masakan'];
$cara_memasak = $_POST['cara_memasak'];
$query = "insert into resep (gambar, nama_masakan, bahan_masakan, cara_memasak) values (?, ?, ?, ?)";
$stmt = $pdo->prepare($query);
$res = $stmt->execute([$gambar, $nama_masakan, $bahan_masakan, $cara_memasak]);
if ($res){
$data = ['gambar'=>$gambar, 'nama_masakan'=>$nama_masakan, 'bahan_masakan'=>$bahan_masakan, 'cara_memasak'=>$cara_memasak];
echo json_encode($data);
} else {
echo json_encode(['error'=>$stmt->errorCode()]);
}
} elseif ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
# untuk menghapus data dari server
$id = $_GET['id'];
$query = "delete from resep where id = ?";
$stmt = $pdo->prepare($query);
$res = $stmt->execute([$id]);
if ($res){
$data = ['id'=>$id];
echo json_encode($data);
} else {
echo json_encode(['error'=>$stmt->errorCode()]);
}
}
3. Mencoba dengan aplikasi postman
Oke kita coba, karna disini kita menggunakan method get,post, dan delete kita tidak bisa menggunakan browser biasa untuk mencoba ini, kita menggunakan aplikasi khusus nama nya aplikasi postman. Aplikasi ini memang di gunakan untuk mencoba aplikasi web service
Karna ini belum ada data nya maka yang tampil hanya kurung buka kurung tutup dan kita belum bisa mengaksesnya sekarang kita menggunakan dengan method POST untuk menginputkan data, inputkan data di postman di body, setelah ke body kemudian ke form data. Jika sudah tinggal kita send. jika sudah berhasil akan muncul tampilan seperti pada gambar di bawah ini.
Setelah itu mari kita cek apakah benar datanya masuk ke dalam database? Mari kita buktikan dengan menggunakan GET. Kalau data nya sudah masuk akan muncul gambar ini.
Kemudian apakah benar ini masuk ke dalam database? Mari kita buka dengan sqliteonline. Jika sudah berhasil akan muncul gambar seperti di bawah ini.
Selanjutnya langkah terakhir saya mau mencoba menghapus data menggunakan method DELETE untuk menghapus salah satu data di dalam database. pada RESTful API ini dibuat dengan cara menghapus data berdasarkan id data yang dipilih. caranya adalah dengan menambahkan parameter pada tab param dengan nama id:
Server merespons RESTful API dengan mengembalikan nilai ID. Artinya data pada tabel database dengan ID 1 telah berhasil dihapus. Setelah menghapus, Anda dapat mencoba lagi dengan membuat permintaan RESTful API menggunakan metode GET seperti berikut :
Respons dari klien ditampilkan seperti di atas atau [](tabel kosong) berarti data telah berhasil dihapus. dan RESTful API beroperasi penuh.
Itulah tutorial singkat tentang cara membuat RESTful API menggunakan PHP dan SQLite. Jika ada kesalahan, saya minta maaf dan terima kasih telah membaca tutorial ini.