Selamat datang di Part 42 dari seri tutorial pemrograman PHP kita! Di bagian ini, kita akan menyelami dunia RESTful API dan mempelajari cara membangunnya menggunakan PHP. RESTful API memungkinkan aplikasi yang berbeda untuk berkomunikasi dan bertukar data melalui internet. Sebelum memulai, pastikan Anda sudah familiar dengan dasar-dasar PHP dan konsep dasar HTTP seperti GET, POST, PUT, dan DELETE.
REST (Representational State Transfer) adalah gaya arsitektur untuk membangun aplikasi web. Bayangkan REST seperti pelayan di restoran. Anda (klien) mengirim permintaan (pesanan makanan) ke pelayan (REST API), dan pelayan mengembalikan respons (makanan yang dipesan). Setiap permintaan berisi informasi yang diperlukan, dan server (restoran) tidak menyimpan status sesi klien.
Prinsip-prinsip utama RESTful API meliputi:
Mari kita bangun API sederhana untuk mengelola daftar produk.
Buat file `index.php` dan tambahkan kode berikut:
<?php
// Inisialisasi data produk (biasanya dari database)
$products = [
['id' => 1, 'name' => 'Laptop', 'price' => 1200],
['id' => 2, 'name' => 'Smartphone', 'price' => 800],
['id' => 3, 'name' => 'Tablet', 'price' => 300]
];
// Mendapatkan path yang diminta (misalnya, /products atau /products/1)
$request_uri = $_SERVER['REQUEST_URI'];
// Memecah path menjadi bagian-bagiannya
$path = explode('/', trim($request_uri, '/'));
// Routing
switch ($path[0]) {
case 'products':
// Mendapatkan ID produk jika ada
$product_id = isset($path[1]) ? (int)$path[1] : null;
// Menangani permintaan berdasarkan method HTTP
switch ($_SERVER['REQUEST_METHOD']) {
case 'GET':
if ($product_id) {
// Mendapatkan produk berdasarkan ID
$product = null;
foreach ($products as $p) {
if ($p['id'] === $product_id) {
$product = $p;
break;
}
}
if ($product) {
// Mengembalikan produk dalam format JSON
header('Content-Type: application/json');
echo json_encode($product);
} else {
// Mengembalikan error jika produk tidak ditemukan
http_response_code(404);
echo json_encode(['message' => 'Product not found']);
}
} else {
// Mengembalikan semua produk
header('Content-Type: application/json');
echo json_encode($products);
}
break;
default:
// Method tidak didukung
http_response_code(405);
echo json_encode(['message' => 'Method not allowed']);
break;
}
break;
default:
// Rute tidak ditemukan
http_response_code(404);
echo json_encode(['message' => 'Route not found']);
break;
}
Penjelasan Kode:
Jalankan server web Anda dan akses URL berikut:
Tambahkan fungsionalitas untuk membuat (POST), memperbarui (PUT), dan menghapus (DELETE) produk.
Lanjutan dari: Optimasi Query Database dengan Prepared Statements di PHP