Selamat datang di bagian ke-66 dari seri tutorial pemrograman PHP kita! Di bagian ini, kita akan mempelajari cara membangun aplikasi RESTful API sederhana menggunakan PHP. API (Application Programming Interface) memungkinkan aplikasi yang berbeda untuk saling berkomunikasi. REST (Representational State Transfer) adalah gaya arsitektur untuk membangun API web. Ini adalah keterampilan penting bagi setiap pengembang web modern. Sebelum memulai, pastikan Anda memiliki pengetahuan dasar tentang PHP, HTTP methods (GET, POST, PUT, DELETE), dan konsep JSON. Sebagai kelanjutan dari part sebelumnya yang membahas tentang Reflection API, pemahaman tentang cara kode diatur dan berinteraksi menjadi krusial dalam membangun API yang terstruktur.
Bayangkan Anda memiliki sebuah database berisi daftar buku. Anda ingin aplikasi lain (misalnya, aplikasi mobile) dapat mengakses data ini. Alih-alih memberikan akses langsung ke database, Anda membangun sebuah API. API ini bertindak sebagai 'jembatan' antara database dan aplikasi lain. Aplikasi dapat mengirim permintaan (misalnya, untuk mendapatkan daftar buku) ke API, dan API akan merespons dengan data dalam format yang mudah dibaca (biasanya JSON).
REST API beroperasi berdasarkan prinsip-prinsip berikut:
Kita akan membangun API sederhana untuk mengelola daftar buku.
Buat struktur direktori seperti berikut:
api/
├── index.php
├── books.php
└── .htaccess
.htaccessFile .htaccess digunakan untuk mengarahkan semua permintaan ke index.php.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
books.phpFile ini akan berisi data buku (untuk tujuan demonstrasi, kita akan menggunakan array sederhana).
<?php
$books = [
[
'id' => 1,
'title' => 'The Lord of the Rings',
'author' => 'J.R.R. Tolkien'
],
[
'id' => 2,
'title' => 'The Hobbit',
'author' => 'J.R.R. Tolkien'
],
[
'id' => 3,
'title' => 'Pride and Prejudice',
'author' => 'Jane Austen'
]
];
index.phpFile ini adalah titik masuk (entry point) ke API kita. Kita akan membaca URL yang diminta dan merespons sesuai dengan HTTP method.
<?php
header('Content-Type: application/json');
require_once 'books.php';
$request_method = $_SERVER['REQUEST_METHOD'];
$path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';
switch ($request_method) {
case 'GET':
if ($path_info) {
$book_id = intval(substr($path_info, 1));
$book = null;
foreach ($books as $b) {
if ($b['id'] === $book_id) {
$book = $b;
break;
}
}
if ($book) {
echo json_encode($book);
} else {
http_response_code(404);
echo json_encode(['message' => 'Book not found']);
}
} else {
echo json_encode($books);
}
break;
default:
http_response_code(405);
echo json_encode(['message' => 'Method Not Allowed']);
break;
}
Penjelasan Kode:
header('Content-Type: application/json');: Mengatur header respons ke JSON.require_once 'books.php';: Memasukkan data buku.$request_method = $_SERVER['REQUEST_METHOD'];: Mendapatkan HTTP method yang digunakan.$path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';: Mendapatkan bagian dari URL setelah nama file (misalnya, /1 untuk mendapatkan buku dengan ID 1).switch ($request_method): Menangani permintaan berdasarkan HTTP method.GET dan ada path_info, kita mencari buku dengan ID yang sesuai.GET dan tidak ada path_info, kita mengembalikan semua buku.GET, kita mengembalikan error 405 (Method Not Allowed).Content-Type: Jika header ini tidak diatur, browser mungkin tidak mengenali respons sebagai JSON.Tambahkan fungsionalitas untuk menambahkan buku baru (menggunakan method POST) dan menghapus buku (menggunakan method DELETE).